- 새롭게 가공후 수정된 배열을 리턴 받을 때는 map 함수를 사용한다.
- 기존 배열을 가공하여 평균, 합산 등을 구할 때는 forEach 사용한다.
let date = [10, 15, 20, 25, 30];
let result = [];
//모든 원소의 값에서 -5 씩 감소시키기
date.forEach( x => {
result.push( x - 5)
});
// 결과 출력
console.log(result); // output [5, 10 ,15, 20, 25];
let data = [10, 15, 20, 25, 30];
//모든 원소의 값에서 -5 감소
data.forEach( (val, idx, arr) => {
data[idx] = val - 5;
});
//결과 출력
//얕은 복사(Swallow Copy) 수행
console.log(data);
얕은 복사(swallow Copy)수행되어 기존 배열이 수정된다. (사용에 주의)
let data = [10, 15, 20, 25, 30];
//모든 원소의 값에서 -5 감소 후 새로운 배열 반환
let result = data.map( x => {
return x -5
});
//결과 출력
console.log(result);
let data = [
{name: "jack", age: 20},
{name: "kevin", age: 16},
{name: "rick", age: 27},
{name: "marry", age: 21},
{name: "rilly", age: 19},
]
// age가 20 이상인 원소 추출(필터링)
let result = data.filter( x => {
return x.age >= 20
});
// 결과 출력
console.log(result);
let data = [
{name: "jack", age: 20},
{name: "kevin", age: 16},
{name: "rick", age: 27},
{name: "marry", age: 21},
{name: "rilly", age: 19},
]
// 배열 내부 객체를 순회 - age >= 20 검사
// 내부 원소 모두 만족해야 True 출력
let result = date.every( x => {
return x.age >= 20
});
// 결과 출력
console.log(result);
let data = [
{name: "jack", age: 20},
{name: "kevin", age: 16},
{name: "rick", age: 27},
{name: "marry", age: 21},
{name: "rilly", age: 19},
]
// 배열 내부 객체를 순회 - age >= 20 검사
// 내부 원소 한 개라도 만족 True 출력
let result = data.some( x => {
return x.age >= 20
});
// 결과 출력
console.log(result);
arr.reduce(callback[, initialValue])
// 1. callback
// - previousValue : 마지막 콜백에서 반환된 값 또는 initialValue
// - currentValue : 현재 배열 내 처리되고 있는 요소
// - currentIndex : 현재 배열 내 처리되고 있는 요소의 인덱스
// - array : reduce 호출에 사용되는 원 배열
// 2. initialValue : callback의 첫 번째 인수의 값에 사용되는 값(default)
// reduce: initialValue가 없는 경우
// 총 loop 횟수는 5회
let arr = [12, 4, 19, 33, 86];
let some = arr.reduce((pre, value, idx, arr) => {
return pre + value;
});
console.log(sum); // 154
// reduce: initialValue가 있는 경우
let arr = [12, 4, 19, 33, 86];
let some = arr.reduce((pre, value, idx, arr) => {
return pre + value;
}, 0);
console.log(sum); // 154
let a = ['a', 'b', 'c', 'c', 'd', 'b', 'a', 'a', 'c', 'c', 'c'];
// 중복되는 원소의 갯수를 계산하는 함수
// 첫 배열 값은 {}로 시작하는 것에 주목.
let b = a.reduce( (x, y, idx, arr) => {
x[y] = ++x[y] || 1;
return x;
}, {});
console.log(b)