728x90
728x90
Map / Filter / Reduce / Find / FindIndex / IndexOf / Includes
들어가며
- 자바스크립트 ES6의 @Map@, @Filter@, @Reduce@, @Find@, @FindIndex@, @IndexOf@, @Includes@ 함수에 대해 알아보자.
- 이 함수들은 배열을 다양한 방식으로 조작하고 필터링하며, 배열 요소를 가공하여 필요한 결과를 얻을 때 유용하게 사용된다.
설명
① Map
- Map 함수는 배열의 각 요소에 대해 주어진 함수를 호출하고, 그 함수가 반환하는 값을 모아 새로운 배열을 생성한다.
- 기존 배열의 각 요소를 변환하여 새로운 배열을 만들 때 주로 사용된다.
- 예를 들어, 모든 요소를 2배로 만드는 경우와 같이 각 요소를 수정하고 새로운 배열을 생성하는 데 사용된다.
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map((num) => num * 2);
// doubledNumbers: [2, 4, 6, 8, 10]
② Filter
- Filter 함수는 주어진 함수의 조건을 만족하는 요소들로 이루어진 새로운 배열을 반환한다.
- 주어진 조건에 맞는 요소만을 걸러내고 필터링할 때 사용된다.
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter((num) => num % 2 === 0);
// evenNumbers: [2, 4]
③ Reduce
- Reduce 함수는 배열의 각 요소에 대해 주어진 함수를 실행하고 하나의 결과값을 반환한다.
- 주로 누적값을 구할 때 사용되며, 배열을 하나의 값으로 줄이는 데 활용된다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, current) => accumulator + current, 0);
// sum: 15
④ Find
- Find 함수는 주어진 조건을 만족하는 배열의 첫 번째 요소를 반환한다.
- 조건에 맞는 요소가 없으면
undefined
를 반환한다.
const numbers = [1, 2, 3, 4, 5];
const found = numbers.find((num) => num > 3);
// found: 4
⑤ FindIndex
- FindIndex 함수는 주어진 조건을 만족하는 배열 요소의 첫 번째 인덱스를 반환한다.
- 조건에 맞는 요소가 없으면
-1
을 반환한다.
const numbers = [1, 2, 3, 4, 5];
const foundIndex = numbers.findIndex((num) => num > 3);
// foundIndex: 3 (4의 인덱스)
⑥ IndexOf / Includes
IndexOf
- IndexOf 함수는 배열에서 주어진 요소를 찾아 그 인덱스를 반환한다.
- 해당 요소가 배열에 여러 번 등장하더라도 첫 번째로 등장하는 위치의 인덱스를 반환한다.
- 만약 배열에 해당 요소가 없다면 @-1@을 반환한다.
const fruits = ['apple', 'banana', 'orange', 'apple', 'pear'];
const indexOfApple = fruits.indexOf('apple');
// indexOfApple: 0 (첫 번째 'apple'의 인덱스)
const indexOfCherry = fruits.indexOf('cherry');
// indexOfCherry: -1 ('cherry'는 배열에 존재하지 않음)
Includes
- ES6에서는 @indexOf@와 유사하지만 요소가 없을 때 @-1@ 대신에 @true@/@false@를 반환하는 @includes@ 함수가 추가되었다.
- 배열에 특정 요소가 있는지 여부를 빠르게 확인할 수 있어서 조건문에서 사용하거나 요소의 존재 여부를 판단할 때 유용하다.
- indexOf와 달리 요소의 인덱스를 반환하는 것이 아니라 단순히 요소의 존재 여부를 판단한다.
const fruits = ['apple', 'banana', 'orange', 'pear'];
const hasApple = fruits.includes('apple');
// hasApple: true (배열에 'apple'이 존재함)
const hasCherry = fruits.includes('cherry');
// hasCherry: false (배열에 'cherry'가 존재하지 않음)
Cheat Sheet
728x90
728x90
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] 비동기 프로그래밍(Asynchronous Programming) (0) | 2024.01.24 |
---|---|
[JavaScript] 변수 재선언과 재할당 (var, let, const) (1) | 2024.01.18 |
[JavaScript] 스프레드 연산자(Spread Operator) (0) | 2023.12.14 |
[JavaScript] 디스트럭처링(Destructuring) (0) | 2023.12.14 |
[JavaScript] 모듈 시스템 (import/export) (0) | 2023.11.27 |
[JavaScript] splice 메서드, slice 메서드, split 메서드 비교 (1) | 2023.11.16 |
[JavaScript] 화살표 함수(Arrow Function) (0) | 2023.11.16 |
[JavaScript] 웹 요소의 내용 가져오기 (innerText, innerHTML, textContent) (0) | 2023.07.29 |