
개발하다가 “이게 반환을 하던가?”, “break는 되던가?” 헷갈릴 때.. 내가 다시 보려고 정리하는 노트
[1, 2, 3].forEach(n => console.log(n * 2));
// 출력: 2, 4, 6
for 문 써야 함)❌ 데이터를 가공해서 새로운 배열을 만들고 싶을 때는 사용 X
const doubled = [1, 2, 3].map(n => n * 2);
console.log(doubled); // [2, 4, 6]
{list.map(item => <Item key={item.id} {...item} />)}const even = [1, 2, 3, 4].filter(n => n % 2 === 0);
console.log(even); // [2, 4]
true를 리턴한 요소만 남김실무 예시:
active상태인 항목만 보여줄 때,isVisible필터링할 때
const sum = [1, 2, 3, 4].reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10
0, [], {} 등)실무 예시: 장바구니 총합 계산, 댓글 수 누적 등
console.log([1, [2, 3], [4, [5]]].flat());
// [1, 2, 3, 4, [5]]
console.log([1, [2, [3, [4]]]].flat(2));
// [1, 2, 3, [4]]
flat(1))const arr = [1, 2, 3];
const result = arr.flatMap(n => [n, n * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]
arr.map(...).flat() 과 같지만 더 빠르고 간결함실무 예시:
API 결과를 flatten 하거나, 중첩 구조를 단순 리스트로 바꿀 때
const users = [{id: 1}, {id: 2}, {id: 3}];
console.log(users.find(u => u.id === 2)); // {id: 2}
console.log(users.findIndex(u => u.id === 2)); // 1
filter는 여러 개 반환, find는 첫 번째만 반환undefinedconst arr = [1, 2, 3];
console.log(arr.some(n => n > 2)); // true
console.log(arr.every(n => n > 0)); // true
some: 하나라도 조건을 만족하면 trueevery: 전부 만족해야 true| 메서드 | 반환값 | 길이 변화 | 주용도 |
|---|---|---|---|
| forEach | 없음 | X | 단순 반복, 출력 |
| map | 새 배열 | 동일 | 데이터 변환 |
| filter | 새 배열 | 줄어듦 | 조건 필터링 |
| reduce | 누적 결과 | 하나 | 합계, 집계 |
| flat | 새 배열 | 줄어듦 | 중첩 해제 |
| flatMap | 새 배열 | 유동적 | map+flat 결합 |
| find | 원소 | X | 첫 항목 찾기 |
| some / every | boolean | X | 조건 검사 |
“배열을 순회하면서 무엇을 얻을 것인가”에 따라 선택해서 사용하기
forEach map filter reduce flat / flatMap