zoukankan      html  css  js  c++  java
  • 数组进阶方法

    1. reduce()
      可以作为一个高阶函数,用于函数的计算,对于空数组是不会执行回调函数的
      语法:array.reduce( ( prev, cur, index, arr ) => {}, init )

      arr 表示原数组;
      prev 表示上一次调用回调时的返回值,或者初始值 init;
      cur 表示当前正在处理的数组元素;
      index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1
      init 表示初始值,当提供值时,第一个prev是提供的值;当不提供值时,第一个prev是原数组的第一个元素

      必须的参数只有两个:prev 和 cur

      数组求和
      var  arr = [1, 2, 3, 4];
      var sum = arr.reduce((x,y)=> x+y)
      console.log(sum) // 10
      将二维数组转为一维数组 let arr = [[0, 1], [2, 3], [4, 5]] let newArr = arr.reduce((pre,cur)=>{ return pre.concat(cur) },[]) console.log(newArr); // [0, 1, 2, 3, 4, 5] 将多维数组转化为一维数组 let arr = [[0, 1], [2, 3], [4,[5,6,7]]] const newArr = function(arr){ return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)? newArr(cur) : cur),[]) } console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7] 对象数组每一项的某个相同属性求和 var result = [ { a: 'a', b: 10 }, { a: 'b', b: 20 }, { a: 'c', b: 30 } ]; var sum = result.reduce(function(prev, cur) { return cur.b + prev; }, 0); console.log(sum) //60
    2. Array.from()
      用于从一个类数组或可迭代对象中创建一个新的、浅拷贝的数组实例
      语法:Array.from(object, mapFunction, thisValue)

      object:必需,要转换为数组的对象
      mapFunction:可选,数组中每个元素要调用的函数
      thisValue:可选,映射函数(mapFunction)中的 this 对象

      Array.from(new Array(3), (item, index) => { return index })
      返回:[0, 1, 2]

      拓展:array.from()方法- JavaScript | MDN

    声明:此资源由本博客收集整理,只用于记录心得和交流学习,请勿用作它途。如有侵权,请联系, 删除处理。
  • 相关阅读:
    个人博客作业-软件案例分析1 博客园和CSDN
    第一次结对项目
    个人项目作业(1)
    个人博客作业(1)
    第一次个人作业
    面向对象第四单元总结和期末总结
    面向对象第三单元总结
    面向对象第二单元总结
    UML——BUAA_OO 第四单元总结 & 课程总结
    JML——BUAA_OO 第三单元总结
  • 原文地址:https://www.cnblogs.com/jzyu/p/13724064.html
Copyright © 2011-2022 走看看