21.02.24 TIL .reduce
5744 ワード
const filterMaped = arr.filter(x => x % 2 !== 0).map(x => x * 2);
console.log(filterMaped) // [2, 6, 10]
=> ?
JSの最新バージョンは?標準ES 6で使われているはずです.
上記の機能は同じですが、より直感的に見えます.
解析
arr.filter(x => x % 2 !== 0) // x를 홀수인자들로 filter 처리하고
map(x => x * 2); // filter 처리된 x들에 2를 곱한다.
to reduce
filterとmapメソッドを別々に書くreduceメソッド
そのため,まずreduce法を振り返る.
reduce?
アキュムレータ-累積(acc)
current value-現在値(cur)
現在のインデックス-現在の要素(idx)
Array-ソースアレイ(arr)
.reduce(function(accumulator, currentValue, currentIndex, array)
let result = [1, 2, 3, 4, 5]; // 결과값인 [2, 6, 10]이 나올 배열을 설정하고
let toReduce = result.reduce(function(acc, cur) { // 총 누산할 acc와 현재 요소인 cur을 인자로 받는다.
if (cur % 2 !== 0) { // filter부분 -> 먼저 홀수가 되는 요소들을 filtering 한 후,
acc.push(cur * 2); // map 부분 -> 그 요소들에 2를 곱하여 acc에 push한다.
}
return acc; // filter, map된 최종결과값 acc를 return한다.
}, []) // 초기값은 배열의 형태로 추출할 것이기에 []로 설정
console.logを撮って、確認結果値は[2,6,10]です.Point
reduceは基本的に多才な方法であり,最低価格/最高価格,複数の配列の展開,オブジェクトのキー値の割り当てなどをフィルタリングできる.そこで,概念的な部分を明確にすることを学び,問題や状況に応じて最初の要素(ここでは空の配列[]である)を数字として選択し,配列として,オブジェクトとして,あるいは設定しないなどと感じた.
Reference
この問題について(21.02.24 TIL .reduce), 我々は、より多くの情報をここで見つけました https://velog.io/@wjstkwhwjdgus/21.02.24-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol