a = [10, 11, 12, 13, 14, 15];
// forEach
// function forEach(predicate, thisArg) {
// for (let i = 0; i < a.length; i++) {
// predicate(a[i], i);
// }
// }
a.forEach(
function (value, index) {
console.log('forEach : ' + value, index, this);
},
[1, 2]
);
forEach : 10 0 (2) [1, 2]
forEach : 11 1 (2) [1, 2]
forEach : 12 2 (2) [1, 2]
forEach : 13 3 (2) [1, 2]
forEach : 14 4 (2) [1, 2]
forEach : 15 5 (2) [1, 2]
a = [10, 11, 12, 13, 14, 15];
// map은 원본배열의 원소를 이용하여 새로운 배열을 생성하는데 원본배열과 동일한 길이로 생성
// function map(predicate, thisArg) {
// let list = [];
// for (let i = 0; i < a.length; i++) {
// list.push(predicate(a[i], i));
// }
// return list;
// }
let answer = a.map(
function (v, i) {
if (v % 2 == 0) return v;
},
[1, 2]
);
console.log(answer);
(6) [10, undefined, 12, undefined, 14, undefined]
0: 10
1: undefined
2: 12
3: undefined
4: 14
5: undefined
length: 6
a = [10, 11, 12, 13, 14, 15];
// 원본배열 안에 해당되는 조건에 따라 필터링해서 true인 값만 배열원소로 생성
// function filter(predicate, thisArg) {
// let list = [];
// for (let i = 0; i < a.length; i++) {
// if (predicate(a[i], i)) list.push(a[i]);
// }
// return list;
// }
let answer1 = a.filter(
function (v, i) {
return v % 2 == 0;
},
[1, 2]
);
console.log('filter : ' + answer1);
filter : 10,12,14
a = [10, 11, 12, 13, 14, 15];
// function reduce(predicate, val) {
// let result = val;
// for (let i = 0; i < a.length; i++) {
// result = predicate(result, a[i]);
// }
// return result;
// }
// return 값이 acc로 들어감
// reduce의 두번째 인자는 초기값
answer2 = a.reduce(function (acc, v) {
return acc + v;
}, 0);
console.log('reduce : ' + answer2);
reduce : 75