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)