배열 변형하기
1. map
배열의 각 원소별로 지정된 함수를 실행한 결과로 구성된 새로운 배열을 반환한다.
let results = arr.map(function(item, index, array) {
// 조건을 충족하는 요소는 results에 순차적으로 더해집니다.
// 조건을 충족하는 요소가 하나도 없으면 빈 배열이 반환됩니다.
});
let arr = [1,2,3,4,5];
let mapped = arr.map(function(item) { return item * 2; });
console.log(mapped); // [2,4,6,8,10]
2. filter
지정된 함수의 결과 값을 true로 만드는 원소들로만 구성된 별도의 배열을 반환.
let results = arr.filter(function(item, index, array) {
// 조건을 충족하는 요소는 results에 순차적으로 더해집니다.
// 조건을 충족하는 요소가 하나도 없으면 빈 배열이 반환됩니다.
});
let arr =[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
let even = function( value ) {
return value % 2 === 0;
};
let newArr = arr.filter( even );
console.log( newArr ); // [ 2, 4, 6, 8, 10 ]
filter() 메소드와의 차이점
- filter: 조건을 만족하는 모든 요소를 배열 형태로 반환
- find: 조건을 만족하는 하나의 요소만을 반환
3. reduce
콜백함수를 적용해 배열을 단일값으로 줄임
let results = arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
reduce 메소드는 두개의 매개변수를 받는다.
1. 콜백함수 : previousValue(이전값), currentValue(현재 값), currentIndex(현재 인덱스), array(배열 자체)
2. 초기값 : 초기값을 지정하지 않으면 배열의 첫번째 요소를 이전값으로 사용하게 되므로, 배열이 비어있을때는 초기값을 지정해줘야 한다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((previousValue, currentValue) => {
return previousValue + currentValue;
}, 0);
console.log(sum); // 출력: 15
const words = ['Apple', 'Banana', 'Cat', 'Dog'];
const result = words.reduce((previousValue, currentValue) => {
return previousValue + ', ' + currentValue;
}, '');
console.log(result); // 출력: "Apple, Banana, Cat, Dog"
4. sort
배열의 요소 정렬
sort는 매개변수를 받지 않거나, 비교함수를 매개변수로 받을 수 있다.
let results = arr.sort();
// 숫자 배열 정렬하기
const numbers = [3, 2, 5, 1, 4];
numbers.sort();
console.log(numbers); // 출력: [1, 2, 3, 4, 5]
// 문자열 배열 정렬하기
const fruits = ['banana', 'orange', 'apple', 'kiwi'];
fruits.sort();
console.log(fruits); // 출력: ["apple", "banana", "kiwi", "orange"]
// 객체 배열 정렬하기
const persons = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 20 },
{ name: 'Charlie', age: 30 },
];
persons.sort((a, b) => a.age - b.age); // 나이순으로 정렬
console.log(persons);
// 출력: [
// { name: "Bob", age: 20 },
// { name: "Alice", age: 25 },
// { name: "Charlie", age: 30 }
// ]
많이 사용하는 오름차순, 내림차순 식 정리
// 오름차순 정렬
const arr1 = [5, 2, 7, 1, 8];
arr1.sort((a, b) => a - b); // 배열을 오름차순으로 정렬
console.log(arr1); // [1, 2, 5, 7, 8]
const arr2 = ['z', 'a', 'b', 'c', 'A', 'Z'];
arr2.sort((a, b) => a.localeCompare(b)); // 배열을 오름차순으로 정렬
console.log(arr2); // ["A", "Z", "a", "b", "c", "z"]
// 내림차순 정렬
const arr3 = [5, 2, 7, 1, 8];
arr3.sort((a, b) => b - a); // 배열을 내림차순으로 정렬
console.log(arr3); // [8, 7, 5, 2, 1]
const arr4 = ['z', 'a', 'b', 'c', 'A', 'Z'];
arr4.sort((a, b) => b.localeCompare(a)); // 배열을 내림차순으로 정렬
console.log(arr4); // ["z", "c", "b", "a", "Z", "A"]
5. reverse
배열 뒤집기
let results = arr.reverse();
'JavaScript' 카테고리의 다른 글
자바스크립트 제어 흐름 (0) | 2023.04.15 |
---|---|
배열의 메소드 4 (from, of) (0) | 2023.04.02 |
배열의 메소드 2 (indexOf, lastIndexOf, includes, find, findIndex) (0) | 2023.03.21 |
배열의 메소드 1 (push, pop, shift, unshift, splice, slice, concat) (0) | 2023.03.16 |
배열 (Array) (0) | 2023.03.16 |