개발의변화
자바스크립트 3. 배열 본문
let arr = new Array() ;
let arr = [] ;
let fruits = ["사과", "오렌지", "자두"];
fruits[0], fruits[1], fruits[2]
배열 요소에 여러 가지 자료형이 섞여 있을 수도 있다.
let arr = ['사과', {name: '이보라'']
pop 배열 맨 끝 요소를 제거하고 , 제거한 요소를 반환 각 요소는 기존 인덱스 유지 실행속도 빠름
push 배열 끝에 요소를 추가
shift 배열 앞 요소를 제거하고, 제거한 요소 반환
unshift 배열 앞 요소를 추가
배열은 키가 숫자
반복문
for (let i=0; i<arr.length; i++)
for (let fruit of fruits) for of를 사용하면 현재 요소의 인덱스만 얻을 수 있음
for in 은 배열도 객체형이기 때문에 사용가능하다. 하지만 유서배열이란 객체와 섞이면 필요없는
프로퍼티들이 문제를 일으킬 수 있다 그래서 지양하는 편이 좋다
arr.splice(index[,deleteCout,elem1,....,elemN)
let arr = ["1", "2", "3"];
arr.splice(1,1) 인덱스 1부터 요소 한 개 제거
alert(arr)
slice문법
arr.slice([start], [end] )
start부터 end까지의 요소를 복사한 새로운 배열 반환
start와 end는 둘 다 음수인데 이땐 배열 끝에서부터 요소 개수를 의미
let arr = ["t","e","s","t"]
alert (arr.slice(1,3)) e,s
alert (arr.slice(-2)) s,t
concat 기존 배열의 요소를 통해 새로운 배열을 만들거나 기존 배열 추가
arr.concat(arg1,arg2)
forEach로 반복작업
arr.forEach 주어진 함수를 배열 요소 각각에 대해 실행
arr.indexOf(item,from)는 인덱스 from부터 시작해 item 요소를 찾는 것 요소를 발견하면
해당 요소의 인덱스 반환, 발견 못하면 -1을 반환
arr.lastIndexOf(itme,from)는 위 메서드와 동일한데 검색을 끝에서부터 시작한다는 점만 다르다
arr.includes(item,from)는 인덱스 from부터 시작해 item이 있는 지 검색 해당하는 요소가 발견
true 즉 boolean 연산자를 반환
let arr = [1,0,false];
alert(arr.indexOf(0)) 1
alert(arr.indexOf(false) 2
alert (arr.indexOf(null)) -1
alert (arr.includes(1)) true
find, findindex
객체로 이루어진 배열에서 특정 조건에 부합하는 객체를 배열 내에서 찾는 것
let result = arr.find(function(item,index,array) {
true가 반환대면 반복을 멈추고 해당요소 반환
조건에 해당하는 요소가 없으면 undefined 반환
}
let users = [
{id:1 , name:"john"},
{id: 2, name: "Pete"},
{id: 3, name: "Mary"}
];
let user = users.find(item => item.id == 1 );
alert(user.name);
find메서드는 함수의 반환 값을 true로 만드는 단 하나의 요소를 찾는다
조건을 충족하는 요소가 여러 개라면 arr.filter를 사용하면 된다
filter는 find와 문법이 유사하지만 조건에 맞는 요소 전체 담은 배열 반환
let users = [ {id: 1, name: "John"}, {id: 2, name: "Pete"}, {id: 3, name: "Mary"} ]; // 앞쪽 사용자 두 명을 반환합니다. let someUsers = users.filter(item => item.id < 3);
lert(someUsers.length); // 2
let arr = [ 1, 2, 15 ]; arr.sort(function(a, b) { return a - b; }); alert(arr); // 1, 2,
forEach, for, for ..of
reduce는 새로운 배열 형태로 하나의 것 도출 시킴
let arr = [1,2,3,4,5];
let result = arr.reduce((sum,current) => sum + current, 0);
alert(result)