[JS] JavaScript에서 유용한 배열 메서드
JavaScript에서 배열을 잘 다루면 코드를 간결하게 작성할 수 있다.
JavaScript를 사용하면서 유용했거나 유용할 것 같은 배열 메서드를 작성해 보았다.
-
map()
배열의 각 요소에 대해 제공된 함수를 호출한 결과를 모아서 새로운 배열을 반환한다.
1 2 3 4
const arr = [1, 2, 3]; const mappedArr = arr.map(x => x * 2); console.log(mappedArr); // [2, 4, 6]
-
filter()
주어진 함수의 조건을 충족하는 모든 요소로 구성된 새로운 배열을 반환한다. 주어진 함수는 각 요소에 대해 참 또는 거짓 값을 반환해야 한다.
1 2 3 4
const array = [1, 2, 3, 4, 5]; const newArray = array.filter(num => num % 2 === 0); console.log(newArray); // [2, 4]
-
some()
배열의 요소 중에서 주어진 판별 함수를 통과하는 요소가 하나 이상 있는지 검사하고, 조건에 맞는 요소가 있으면 true를 반환한다.
1 2 3 4
const arr = [1, 2, 3, 4, 5]; const hasEven = arr.some(num => num % 2 === 0); console.log(hasEven); // true
-
every()
배열의 모든 요소가 주어진 조건을 만족하는지를 확인한다. 배열의 모든 요소가 주어진 콜백 함수에 대해 true를 반환하면 true를 반환한다.
1 2 3 4
const array = [1, 2, 3, 4, 5]; const isAllEven = array.every(num => num % 2 === 0); console.log(isAllEven); // false
-
from()
유사 배열 객체나 반복 가능한 객체를 배열로 변환한다.
1 2 3 4 5 6 7 8 9
// 유사 배열 객체를 배열로 변환하는 예제 const arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 }; const newArray = Array.from(arrayLike); console.log(newArray); // ['a', 'b', 'c'] // 문자열을 배열로 변환하는 예제 const str = 'hello'; const charArray = Array.from(str); console.log(charArray); // ['h', 'e', 'l', 'l', 'o']
-
sort()
배열의 요소를 적절한 위치에 정렬하고 배열을 반환한다. 기본적으로는 문자열로 변환하여 사전식으로 정렬한다.
1 2 3 4
const arr = [3, 1, 2, 5, 4]; arr.sort(); console.log(arr); // [1, 2, 3, 4, 5]
-
pop()
배열에서 마지막 요소를 제거하고 그 요소를 반환한다.
1 2 3 4 5
const arr = [1, 2, 3]; const poppedItem = arr.pop(); console.log(poppedItem); // 3 console.log(arr); // [1, 2]
-
shift()
배열에서 첫 번째 요소를 제거하고 해당 요소를 반환한다.
1 2 3 4 5
const arr = [1, 2, 3]; const shiftedItem = arr.shift(); console.log(shiftedItem); // 1 console.log(arr); // [2, 3]
-
unshift()
배열의 맨 앞에 하나 이상의 요소를 추가하고 새로운 길이를 반환한다.
1 2 3 4 5
const arr = [2, 3]; const newLength = arr.unshift(1); console.log(newLength); // 3 console.log(arr); // [1, 2, 3]
-
push()
배열의 끝에 하나 이상의 요소를 추가하고 배열의 새로운 길이를 반환한다.
1 2 3 4
const arr = [1, 2, 3]; arr.push(4, 5); console.log(arr); // [1, 2, 3, 4, 5]
-
slice()
배열의 일부분을 추출하여 새로운 배열을 반환한다. 기존 배열은 변경되지 않는다.
1 2 3 4
const arr = [1, 2, 3, 4, 5]; const slicedArr = arr.slice(1, 4); console.log(slicedArr); // [2, 3, 4]
-
splice()
배열의 요소를 제거하고 그 위치에 새로운 요소를 추가할 수 있다. 이 메서드는 기존 배열을 수정한다.
1 2 3 4 5
const arr = [1, 2, 3, 4, 5]; const removedItems = arr.splice(1, 2, 'a', 'b', 'c'); console.log(arr); // [1, 'a', 'b', 'c', 4, 5] console.log(removedItems); // [2, 3]
-
reverse()
배열의 요소를 반전시킨다. 첫 번째 요소는 마지막 요소로, 마지막 요소는 첫 번째 요소로 바뀐다.
1 2 3 4
const arr = [1, 2, 3, 4, 5]; arr.reverse(); console.log(arr); // [5, 4, 3, 2, 1]
-
reduce()
배열의 각 요소에 대해 제공된 함수를 실행하고 하나의 결과값을 반환한다.
1 2 3 4
const arr = [1, 2, 3, 4, 5]; const sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); console.log(sum); // 15
-
reduceRight()
배열의 각 요소에 대해 제공된 함수를 오른쪽에서 왼쪽으로 실행하고 하나의 결과값을 반환한다.
1 2 3 4
const arr = ['a', 'b', 'c', 'd']; const reversedString = arr.reduceRight((accumulator, currentValue) => accumulator + currentValue); console.log(reversedString); // 'dcba'
-
join()
배열의 모든 요소를 문자열로 결합하여 하나의 문자열로 반환한다.
1 2 3 4
const arr = ['apple', 'banana', 'orange']; const str = arr.join(', '); console.log(str); // 'apple, banana, orange'
-
flat()
모든 하위 배열 요소를 지정된 깊이까지 재귀적으로 이어붙인 새로운 배열을 생성한다.
1 2 3 4
const arr = [1, 2, [3, 4]]; const flatArr = arr.flat(); console.log(flatArr); // [1, 2, 3, 4]
-
flatMap()
각 요소에 대해 매핑 함수를 호출한 다음, 결과를 평탄하게 한 후 새로운 배열을 반환한다.
1 2 3 4
const arr = [1, 2, 3]; const mappedArr = arr.flatMap(x => [x, x * 2]); console.log(mappedArr); // [1, 2, 2, 4, 3, 6]
-
includes()
배열에 특정 요소가 포함되어 있는지 여부를 확인한다.
1 2 3 4
const arr = [1, 2, 3]; console.log(arr.includes(2)); // true console.log(arr.includes(4)); // false
-
indexOf()
배열에서 지정된 요소를 찾아 그 첫 번째 인덱스를 반환한다. 요소를 찾지 못하면 -1을 반환한다.
1 2 3 4
const arr = [1, 2, 3]; console.log(arr.indexOf(2)); // 1 console.log(arr.indexOf(4)); // -1
-
lastIndexOf()
배열에서 지정된 요소를 뒤에서부터 찾아 그 인덱스를 반환한다.
1 2 3
const arr = [1, 2, 3, 1, 2, 3]; console.log(arr.lastIndexOf(2)); // 4
-
at()
배열에서 특정 인덱스의 요소를 반환한다. 음수 인덱스도 지원하며, 배열의 끝에서부터 요소를 가져올 수 있다.
1 2 3 4
const array = ['a', 'b', 'c', 'd']; console.log(array.at(2)); // 'c' console.log(array.at(-1)); // 'd'
-
concat()
현재 배열에 다른 배열 또는 값들을 결합하여 새로운 배열을 반환한다. 이는 기존 배열을 변경하지 않고 새로운 배열을 생성한다.
1 2 3 4 5
const array1 = [1, 2, 3]; const array2 = [4, 5, 6]; const newArray = array1.concat(array2); console.log(newArray); // [1, 2, 3, 4, 5, 6]
-
values()
객체의 열거 가능한 속성 값에 대한 값 Iterator 객체를 반환한다.
1 2 3 4 5 6
const obj = { a: 1, b: 2, c: 3 }; const valueIterator = Object.values(obj); console.log(valueIterator.next().value); // 1 console.log(valueIterator.next().value); // 2 console.log(valueIterator.next().value); // 3
-
keys()
배열의 각 인덱스를 나타내는 새로운 Array Iterator 객체를 반환한다.
1 2 3 4 5
const arr = ['a', 'b', 'c']; const keys = arr.keys(); for (const key of keys) { console.log(key); // 0, 1, 2 }
-
entries()
배열의 각 인덱스에 대한 키-값 쌍을 가지는 새로운 Array Iterator 객체를 반환한다. 이 Iterator를 사용하여 배열의 요소와 해당 인덱스에 접근할 수 있다.
1 2 3 4 5 6 7 8 9
const array = ['a', 'b', 'c']; const iterator = array.entries(); for (const [index, value] of iterator) { console.log(index, value); } // 0 'a' // 1 'b' // 2 'c'
-
fill()
배열의 모든 요소를 정적 값으로 채운다. 시작 인덱스부터 끝 인덱스까지 지정된 값으로 배열을 채운다. 시작 및 끝 인덱스를 지정하지 않으면 배열의 모든 요소가 지정된 값으로 채워진다.
1 2 3 4
const array = [1, 2, 3, 4, 5]; const newArray = array.fill(0, 1, 3); console.log(newArray); // [1, 0, 0, 4, 5]
-
find()
주어진 조건을 만족하는 배열의 첫 번째 요소를 반환한다. 조건을 만족하는 요소가 없으면 undefined를 반환한다.
1 2 3 4
const array = [1, 2, 3, 4, 5]; const foundValue = array.find(num => num > 3); console.log(foundValue); // 4
-
findIndex()
주어진 조건을 만족하는 배열의 첫 번째 요소의 인덱스를 반환한다. 조건을 만족하는 요소가 없으면 -1을 반환한다.
1 2 3 4
const array = [1, 2, 3, 4, 5]; const foundIndex = array.findIndex(num => num > 3); console.log(foundIndex); // 3
-
findLast()
주어진 조건을 만족하는 배열의 마지막 요소를 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13
Array.prototype.findLast = function(callback) { for (let i = this.length - 1; i >= 0; i--) { if (callback(this[i])) { return this[i]; } } return undefined; }; const array = [1, 2, 3, 4, 5]; const foundLast = array.findLast(num => num > 2); console.log(foundLast); // 5
-
findLastIndex()
주어진 조건을 만족하는 배열의 마지막 요소의 인덱스를 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13
Array.prototype.findLastIndex = function(callback) { for (let i = this.length - 1; i >= 0; i--) { if (callback(this[i])) { return i; } } return -1; }; const array = [1, 2, 3, 4, 5]; const foundLastIndex = array.findLastIndex(num => num > 2); console.log(foundLastIndex); // 4
Leave a comment