[JavaScript] 배열 메서드
실제 사용되는 배열 메서드는 훨씬 많지만 간략하게라도 아래에 정리하였다.
concat
배열을 하나로 합칠 때 사용한다. 인자로 들어온 배열의 순서대로 합쳐진다.
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [7, 8, 9];
var wrap = arr1.concat(arr2, arr2, arr3);
console.log(wrap);
// (12) [1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9]
console.log(arr1);
// (3) [1, 2, 3]
forEach
주어진 함수를 배열 요소 각각에 대해 실행한다.
var arr = ['a', 'b', 'c'];
arr.forEach(function (element) {
console.log(element);
// a
// b
// c
});
map
배열을 반복하고, 콜백함수가 리턴한 값으로 새 배열을 반환한다.
var users = [
{ name: '철수', age: 20 },
{ name: '영희', age: 25 },
{ name: '민수', age: 23 },
{ name: '주연', age: 27 }
];
var usersName = users.map(function (element) {
return element.name;
// 각 요소의 nama 값만 반환
});
console.log(usersName);
// (4) ["철수", "영희", "민수", "주연"]
filter
배열을 반복하고, 콜백함수의 리턴값이 true인 요소로만 구성된 새 배열을 반환한다. 아래 예제는 age가 23 초과인 요소만 반환하였다.
var users = [
{ name: '철수', age: 20 },
{ name: '영희', age: 25 },
{ name: '민수', age: 23 },
{ name: '주연', age: 27 }
];
var usersOld = users.filter(function (element) {
return element.age > 23;
});
console.log(usersOld);
// (2) [{…}, {…}]
// 0: {name: "영희", age: 25}
// 1: {name: "주연", age: 27}
// length: 2
// __proto__: Array(0)
sort
배열을 반복하고, 콜백함수의 리턴값이 true인 요소로만 구성된 새 배열을 반환한다. 아래 예제는 age가 23 초과인 요소만 반환하였다.
var arr = [5, 2, 1, 3, 10, 4];
arr.sort(function(a, b) {
return a - b;
// 오름차순
});
console.log(arr);
// (6) [1, 2, 3, 4, 5, 10]
arr.sort(function(a, b) {
return b - a;
// 내림차순
});
console.log(arr);
// (6) [10, 5, 4, 3, 2, 1]
indexOf
인자로 전달된 요소와 매치되는 첫번째 요소의 인덱스를 반환한다. 일치하는 요소가 없으면 -1을 반환한다.
var arr = ['a', 'b', 'c', 'd'];
console.log(arr.indexOf('c')); // 2
console.log(arr.indexOf('e')); // -1
every
함수의 리턴값이 false가 될 때 까지 배열 요소 각각에 대해 함수를 실행한다.
var arr = [1, 2, 3, 4, 5];
arr.every(function(element) {
console.log(element);
// 1
// 2
// 3
return element < 3;
});
References
JavaScript 배열 메서드 ( Array method )
Array.prototype.forEach()
알아두면 좋은 자바스크립트 배열 메서드