数组方法reduce


   arr.reduce(function(prev,cur,index,arr){
   ...
   }, init);
       
  // 其中,
  // prev 表示上一次调用回调时的返回值,或者初始值 init;
  // cur 表示当前正在处理的数组元素;
  // index 表示当前正在处理的数组元素的索引,若提供 init 值( [] ),则索引为0,否则索引为1;
  // arr 表示原数组;
       
  // init 表示初始值。可为[] ,也可以为 0 或其他初始值
       
  // 计算数组项之和
   let bigarr = [1, 3, 7, 9, 8, 7, 6, 2, 9, 1, 3]
   console.log(bigarr.reduce((prev, cur) => {
    return prev + cur
   }))  // 56
       
  // 求最大值
  console.log('max', bigarr.reduce((prev, cur) => {
    return Math.max(prev, cur) // 9
  }))
       
  // 数组去重
    let newArr = bigarr.reduce((prev, cur) => {
    console.log('prev', prev, cur)
    prev.indexOf(cur) === -1 && prev.push(cur)
    return prev
  }, [])
  // prev [] 1
  // style.html:78 prev [1] 3
  // style.html:78 prev (2) [1, 3] 7
  // style.html:78 prev (3) [1, 3, 7] 9
  // style.html:78 prev (4) [1, 3, 7, 9] 8
  // style.html:78 prev (5) [1, 3, 7, 9, 8] 7
  // style.html:78 prev (5) [1, 3, 7, 9, 8] 6
  // style.html:78 prev (6) [1, 3, 7, 9, 8, 6] 2
  // style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 9
  // style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 1
  // style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 3 
    
   console.log('new', newArr) // [1, 3, 7, 9, 8, 6, 2]

文章作者: KarlFranz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 reprint policy. If reproduced, please indicate source KarlFranz !
评论
  目录