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

    声明:此资源由本博客收集整理,只用于记录心得和交流学习,请勿用作它途。如有侵权,请联系, 删除处理。
  • 相关阅读:
    AJAX请求MVC控制器跨域头问题
    HTTP 错误500.19 -Internal Server Error 错误代码 0x80070021
    C# 同一时间批量生成订单号不重复
    Unity书籍下载地址
    几种常见的设计模式
    C# web api 对象与JSON互转
    自动按参数首字母排序参数
    C# 3DES加密 解密
    C#大量数据导出Excel
    判断对象是数组
  • 原文地址:https://www.cnblogs.com/jzyu/p/13724064.html
Copyright © 2011-2022 走看看