配置方法:reduce


配列方法にはreduceがあり,これは他の方法よりも難しいので単独で記述する.

reduceとは?


mapが配列の各要素を変更すると、reduceは配列自体を変更します.reduceという名前は、この方法が通常、配列を1つの値に縮小するために使用されるためです.
  • MDNを使用してreduceをさらに理解する
  • 視覚化Reduce

  • array.reduce( callback( accumulator, currentValue [, index [, array ] ])[, initialValue ] )
    現在の値:currentValue(cur,val)
    積算値:acc
    現在のインデックス:inx
    ソースアレイ:src
  • は、reduce()を代表的に使用して、以下のコードの動作をより容易に記述する.
  • 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
    例1
    let 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]