数组中的方法

some

数组.forEach方法会循环数组,且会进行一个完整的循环,无法被终止,浪费性能

数组.some方法在找到数据后就可以使用return true终止some

const arr =[1,2,3,4] ;
arr.some((item,index)=>{
   if(item==="3"){
       console.log(index);
       retuen true
  }
})

every

数组.every常用来判断是否全选,只有条件全部满足才返回true


const arr=[
{id:1,name:'zs',state:true},
  {id:2,name:'zs',state:false},
  {id:3,name:'zs',state:true},
]
const result = arr.every(item=>item.state)

reduce

数组.reduce是一个函数循环累加器


const arr=[
{id:1,name:'西瓜',state:true,price:10,count:1},
  {id:2,name:'榴莲',state:true,price:20,count:2},
  {id:3,name:'草莓',state:true,price:30,count:3},
]
//累加选中的水果价格
//普通做法
let sum = 0;
arr.filter(item=>item.state).forEach(item=>{
   sum += item.price*item.count
})
//使用reduce,不用在外面定义sum,直接在方法内定义
//arr.filter(item=>item.state).reduce((结果,item)=>{},初始值)
arr.filter(item=>item.state).reduce((sum,item)=>{
   return sum += item.price*item.count
},0)