reduce、扁平化

109 阅读1分钟

reduce

  • reduce()方法接受一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
  • reduce()可以作为一个高阶函数,用户函数的compose
  • reduce()对于空数组是不会执行回调函数函数的
  • 浏览器支持:谷歌浏览器、edge9.0及以上、火狐3.0及以上、iosc4.0及以上、OpenGL10.5及以上
  • 它是ECS3新增的一个方法
语法

array.reduce(function(total,currentValue,currentIndex,arr),initialValue)

  • total:必备,初始值或者计算结束后的返回值
  • currentValue:必须。当前元素
  • currentIndex:可选。当前元素的索引
  • arr:可选。当前元素所属的数组对象
  • initialValue:可选。传递给函数的初始值

实例: 求学生年龄的平均值

   var students = [
      {
        name: "fsd",
        age: 19
      },
      {
        name: "fsd",
        age: 17
      },
      {
        name: "fsd",
        age: 16
      },
      {
        name: "fsd",
        age: 15
      },
      {
        name: "fsd",
        age: 14
      },
    ];
    var ages = [];
    for (var i = 0; i < students.length; i++) {
       ages.push(students[i].age)
    }
    var num=students.length
    console.log(ages);
    function getage(){
      document.getElementById("demo").innerHTML = ages.reduce(function(total,num){
        var zong= total+num;
        return zong
      },0)/num;
    }
    console.log(students.length);

扁平化

概念:扁平化概念的核心意义是:去除冗余,厚重和繁杂的修饰效果

  • 对于多维数据,扁平化的目的就是让她降维
  • some():用于监测数组中的元素是否满足指定条件,如果有一个元素满足天剑,则返回true,剩余元素不会再执行检测,如果没有满足条件的元素,则返回false
    • some()不会对空数组进行检测
    • some()不会改变原始数组

实例:检测是否有0

let arr=[1,2,3,4,5]
let flag=arr.some(item=>{
    if(item==0){
        return item
    }
})
console.log(flag)