arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
몰랐던것들
array는 forEach()를 호출한 배열. 즉 여기선 arr이다.
forEach 예시문1
const a = [ 1, 2, 3 ]
a.forEach(function (v, i, arr) {
console.log(v, i, arr, this)
}, [ 10, 11, 12 ])
forEach 예시문2
const a = [ 1, 2, 3 ]
a.forEach(function (v, i, arr) {
console.log(this[i])
}, [ 10, 11, 12 ])
//expected result
// 10
// 11
// 12
for문을 돌려서 새로운 배열을 만드는 목적.
Array.prototype.map(callback[, thisArg])
callback
: function (currentValue[, index[, originalArray]])
currentValue
: 현재값index
: 현재 인덱스originalArray
: 원본 배열thisArg
: this에 할당할 대상. 생략시 global객체예시
const a = [ 1, 2, 3 ]
const b = a.map(function (v, i, arr) {
console.log(v, i, arr, this)
return this[0] + v
}, [ 10 ])
결과값
1 0 [ 1, 2, 3 ] [ 10 ]
2 1 [ 1, 2, 3 ] [ 10 ]
3 2 [ 1, 2, 3 ] [ 10 ]
[ 11, 12, 13 ]
for문을 돌려서 최종적으로 다른 무언가를 만드는 목적.
arr.reduce(callback[, initialValue])
function(accumulator, currentValue[, currnetIndex[, originalArray]])
accumulator
: 누적된 계산값currentValue
: 현재값currentIndex
: 현재 인덱스originalArray
: 원본 배열
예시1
초기값을 설정한 경우
const arr = [ 1, 2, 3 ]
const res = arr.reduce(function (p, c, i) {
console.log(p, c, i)
return p + c
}, 10)
결과값
10 1 0
11 2 1
13 3 2
16
-> 10 + 1 + 2 + 3
예시2
초기값을 설정하지 않은 경우
const arr = [ 1, 2, 3 ]
const res = arr.reduce(function (p, c, i) {
console.log(p, c, i)
return p + c
})
console.log(res);
결과값
1 2 1
3 3 2
6
초기값을 설정하지 않아 첫번째 p가 초기값이 된다.
초기값: 1
c(currentValue)는 두번째인자인 2부터 돈다.
초기값: 1
-> 1 + 2 + 3