추가/제거
shift
배열 앞부분의 값을 삭제
var arr = [ 1, 2, 3, 4 ];
arr.shift();
console.log( arr ); // [ 2, 3, 4 ]
unshift
배열 앞부분에 값을 삽입
var arr = [ 1, 2, 3, 4 ];
arr.unshift( 0 );
console.log( arr ); // [ 0, 1, 2, 3, 4 ]
pop
배열 뒷부분의 값을 삭제
var arr = [ 1, 2, 3, 4 ];
arr.pop();
console.log( arr ); // [ 1, 2, 3 ]
push
배열 뒷부분에 값을 삽입
var arr = [ 1, 2, 3, 4 ];
arr.push( 5 );
console.log( arr ); // [ 1, 2, 3, 4, 5 ]
splice
배열의 특정위치에 요소를 추가하거나 삭제
splice( index, 제거할 요소 개수, 배열에 추가될 요소 )
var arr = [ 1, 2, 3, 4, 5, 6, 7 ];
arr.splice( 3, 2 );
console.log( arr ); // [ 1, 2, 3, 6, 7 ] 3번째 인덱스에서부터 2개 제거
var arr = [ 1, 2, 3, 4, 5, 6, 7 ];
arr.splice( 2, 1, "a", "b");
console.log( arr ); // [ 1, 2, "a", "b", 4, 5, 6, 7 ] 2번째 인덱스에서 1개 제거 후 "a"와 "b"를 추가
정렬/역정렬
reverse
배열의 원소 순서를 거꾸로 바꾼다.
var arr =[ 1, 2, 3, 4 ];
arr.reverse();
console.log( arr ); // [ 4, 3, 2, 1 ]
sort
배열의 원소를 알파벳순으로, 또는 지정된 함수에 따른 순서로 정렬한다.
모든 원소를 문자열로 취급해 사전적으로 정렬
var arr = [ 13, 12, 11, 10, 5, 3, 2, 1 ];
arr.sort();
console.log( arr ); // [ 1, 10, 11, 12, 13, 2, 3, 5 ];
// sort에 함수로 정렬
var arr = [ 13, 2, 5, 10, 11, 3, 12, 1 ];
arr.sort( function( a, b ) {
return a - b;
})
console.log( arr ); // 오름차순 [ 1, 2, 3, 5, 10, 11, 12, 13 ]
// return a + b; 내림차순 [ 13, 12, 11, 10, 5, 3, 2, 1 ]
병합/자르기/이어 붙이기
concat
다수의 배열을 합치고 병합된 배열의 사본을 반환
var arr1 = [ 1, 2, 3 ];
var arr2 = [ 4, 5, 6 ];
var arr3 = arr2.concat( arr1 );
console.log( arr3 ); // [ 4, 5, 6, 1, 2, 3 ]
slice( startIndex, endIndex)
배열의 startIndex부터 endIndex까지(endIndex는 불포함)에 대한 shallow copy를 새로운 배열 객체로 반환
var arr = [ 1, 2, 3, 4, 5, 6, 7 ];
var newArr = arr.slice( 3, 6 );
console.log( 'slice', newArr ); // [ 4, 5, 6 ]
join
배열 원소 전부를 하나의 문자열로 합친다.
var arr =[ 1, 2, 3, 4 ];
console.log( arr.join() ); // 1,2,3,4
console.log( arr.join( '-' ) ); // 1-2-3-4
값 검색
indexOf
배열에서 지정된 요소를 찾을 수있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환
var beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// expected output: 1
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
console.log(beasts.indexOf('giraffe'));
// expected output: -1
lastIndexOf()
지정된 요소가 배열에서 발견 될 수있는 마지막 인덱스를 반환하고, 존재하지 않으면 -1을 반환
var animals = ['Dodo', 'Tiger', 'Penguin', 'Dodo'];
console.log(animals.lastIndexOf('Dodo'));
// expected output: 3
console.log(animals.lastIndexOf('Tiger'));
// expected output: 1
순회_확인
forEach
배열의 각 원소별로 지정된 함수를 실행한다.
var arr =[ 1, 2, 3 ];
arr.forEach( function( value ) {
console.log( value ); // 1 2 3
});
every
배열의 모든 요소가 제공한 함수로 구현된 테스트를 통과하는지를 테스트
var arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var isEven = function( value ) {
// value가 2의 배수이면 true를 반환한다.
return value % 2 === 0;
};
console.log( arr.every( isEven ) ); // false 모든 요소가 true이면 true를 return 하고 그렇지 않으면 false
some
지정된 함수의 결과가 true일 때까지 배열의 각 원소를 반복
var arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var isEven = function( value ) {
// value가 2의 배수이면 true를 반환한다.
return value % 2 === 0;
};
console.log( arr.some( isEven ) ); // true 하나라도 true이면 true를 return
순회_변형
map
배열의 각 원소별로 지정된 함수를 실행한 결과로 구성된 새로운 배열을 반환한다.
var arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var isEven = function( value ) {
return value % 2 === 0;
};
var newArr = arr.map( isEven );
console.log( newArr ); // [ false, true, false, true, false, true, false, true, false, true ]
filter
지정된 함수의 결과 값을 true로 만드는 원소들로만 구성된 별도의 배열을 반환한다.
var arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var isEven = function( value ) {
return value % 2 === 0;
};
var newArr = arr.filter( isEven );
console.log( newArr ); // [ 2, 4, 6, 8, 10 ]
순회_감소
reduce
누산기(accumulator) 및 배열의 각 값(좌에서 우로)에 대해 (누산된) 한 값으로 줄도록 함수를 적용
var arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var value = arr.reduce( function( previousValue, currentValue, index ) {
return previousValue + currentValue;
});
console.log( value ); // 55
문자
toString
배열을 문자열로 바꾸어 반환한다
var arr =[ 1, 2, 3, 4 ];
console.log( arr.toString() ); // 1, 2, 3, 4
valueOf
toString과 비슷, 그러나 배열을 반환
var arr =[ 1, 2, 3, 4 ];
console.log( arr.valueOf() ); // [ 1, 2, 3, 4 ]