配置方法:reduce
3165 ワード
配列方法にはreduceがあり,これは他の方法よりも難しいので単独で記述する.
mapが配列の各要素を変更すると、reduceは配列自体を変更します.reduceという名前は、この方法が通常、配列を1つの値に縮小するために使用されるためです. MDNを使用してreduceをさらに理解する 視覚化Reduce
array.reduce( callback( accumulator, currentValue [, index [, array ] ])[, initialValue ] )
現在の値:currentValue(cur,val)
積算値:acc
現在のインデックス:inx
ソースアレイ:srcは、reduce()を代表的に使用して、以下のコードの動作をより容易に記述する.
例2:reduce()配列内の最大値を検索します.
文がaccとval値を比較する場合.
if文は配列の0ビット5をaccに追加する.
ifボックスは、配列内の1ビット4をval位置にインポートし、accとvalを比較します.
valがaccより大きい場合は、accにval値を入力します.
acc : 5 , val : 4 = acc : 5
2つ目は,配列中の2ビット9をvalにインポートしacc:5と比較する.
acc : 5 , val : 9 = acc : 9
val値がaccより大きいため、条件文に従ってval値がaccより大きい値をaccに挿入します.
reduceのもう一つの概念の説明
reduce():配列内の値を1つの値に縮小します.(数値、文字、配列など)は、値を返します.
コードの説明:
初期値を設定するとaccは0から始まります
初期値を設定しない場合
各要素の現在の値
//配列内のすべての要素の値を1つの値に結合します.
indexは0番目
積算値(return)0
現在の値10
戻り値10
インデックス1
積算値(return)10
現在の値20
return 30
インデックス2
積算値30
現在の値30
return 60
インデックス3
積算値60
現在値40
return 100
インデックス4
累計値100
現在値50
return 150
arr配列の要素x 2を変更します.
出力値:[20,40,60,80100]
reduceとは?
mapが配列の各要素を変更すると、reduceは配列自体を変更します.reduceという名前は、この方法が通常、配列を1つの値に縮小するために使用されるためです.
array.reduce( callback( accumulator, currentValue [, index [, array ] ])[, initialValue ] )
現在の値:currentValue(cur,val)
積算値:acc
現在のインデックス:inx
ソースアレイ:src
let arrayDemo = [1,2,3,4,5,12];
let sum = 0;
for(let i = 0; i < arrayDemo.length; i++){
sum = sum + arrayDemo[i];
}
console.log(sum);
// 1 + 2 + 3 + 4 + 5 + 12
// 출력 : 27
例1let array = [5,4,1,2,9];
function sum (acc, val){
console.log(acc);
return acc + val;
}
let answer = array.reduce(sum,0);
デバッガの表示例2:reduce()配列内の最大値を検索します.
** for문으로 작성하기 **
let wordbox = 0;
let arr = ['world','a','app','dongsel'];
for(let i = 0; i < arr.length; i++){
if(arr[i].length >= wordbox){
wordbox = arr[i].length;
}
}
// 결과 : 7 ('dongsel');
** reduce로 작성하기 **
let array = [5,4,9,2,1];
function findMax(acc,val){
if(acc < val) {
acc = val;
}
return acc;
}
let biggest = array.reduce(findMax);
console.log(biggest);
コードの説明文がaccとval値を比較する場合.
if文は配列の0ビット5をaccに追加する.
ifボックスは、配列内の1ビット4をval位置にインポートし、accとvalを比較します.
valがaccより大きい場合は、accにval値を入力します.
acc : 5 , val : 4 = acc : 5
2つ目は,配列中の2ビット9をvalにインポートしacc:5と比較する.
acc : 5 , val : 9 = acc : 9
val値がaccより大きいため、条件文に従ってval値がaccより大きい値をaccに挿入します.
reduceのもう一つの概念の説明
reduce():配列内の値を1つの値に縮小します.(数値、文字、配列など)は、値を返します.
const arr = [10, 20, 30, 40, 50];
arr.reduce(function(acc, cur, index, src(원본배열)) {
}
コードの説明:
初期値を設定するとaccは0から始まります
初期値を設定しない場合
cons arr = [ ]
[]内の10の値から開始します.各要素の現在の値
arr = [10,20,30,40,50]
巡回するたびに遭遇する要素の値を指します.//配列内のすべての要素の値を1つの値に結合します.
(acc : 누적값) (cur : 현재값)
arr.reduce(function(acc, cur, index, src(원본배열)) {
return acc + cur
}, 0)
以上のコードの詳細indexは0番目
積算値(return)0
現在の値10
戻り値10
インデックス1
積算値(return)10
現在の値20
return 30
インデックス2
積算値30
現在の値30
return 60
インデックス3
積算値60
現在値40
return 100
インデックス4
累計値100
現在値50
return 150
arr配列の要素x 2を変更します.
出力値:[20,40,60,80100]
Reference
この問題について(配置方法:reduce), 我々は、より多くの情報をここで見つけました https://velog.io/@dbk03053/배열-메소드-reduceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol