Javascript – 数组应用

简介

本篇文章主要讲述数组的几个处理方法。分别为

some

every

reduce

 

some

假设有若干个成员的数组,需要判断某个成员在整个数组中的索引,我们可以使用 forEach 来枚举每一个成员,并判断该成员是否是我们想要找到的成员,并输出索引。

let arr = ['小明', '小红', '张三', '李四'];

arr.forEach((item,index) => {
  if (item === '张三')
  {
    console.log(index);
  }
})

但是这里有一个缺陷,就是 forEach 的循环一旦运行是不能中断的,意味着每一次判断都必须把数组所有成员都枚举完,而我们的需求是当枚举到我们需要的成员索引后,应当马上停止枚举,可以使用 some 方法。

 

let arr = ['小明', '小红', '张三', '李四'];

arr.some((item,index) => {
  if (item === '张三')
  {
    console.log(index);
    return true;
  }
})

 

 

every

every 的作用是判断数组中某个属性是否全为 true ,如果是则返回 true,否则返回 false.这个功能一般多用在类似购物车,或列表上的 "全选" 按钮提示上。

let arr = [
  {name:'小明', state:true},
  {name:'小红', state:true},
  {name:'小白', state:true},
  {name:'小黑', state:true}
];

const state = arr.every(item=>item.state);

若成员中全为 true ,则 state 返回 true, 否则返回 false

 

 

reduce

reduce 的作用是进行数组内成员数据的累计统计。我们可以使用传统的 forEach 方式进行累计

let arr = [
  {id:1, name:'小明', state:true, price:10, count:2},
  {id:2, name:'小红', state:true, price:20, count:3},
  {id:3, name:'小白', state:false, price:30, count:4},
  {id:4, name:'小黑', state:true, price:40, count:5}
];

 let amt = 0
// 先把数组中 state 为 false 的成员进行过滤掉,现在返回数组id为1,2,4 三个成员
 const filter = arr.filter(item => item.state)
// 再把过滤出来的成员让它们每一项的数目相加
 filter.forEach(item => {
   amt += item.price * item.count
 })
// 最后得出总价格
console.log(amt) 

但是我们可以使用 reduce 的方式累计数组中的总计。

let arr = [
  {id:1, name:'小明', state:true, price:10, count:2},
  {id:2, name:'小红', state:true, price:20, count:3},
  {id:3, name:'小白', state:false, price:30, count:4},
  {id:4, name:'小黑', state:true, price:40, count:5}
];

 let amt = 0
// 先把数组中 state 为 false 的成员进行过滤掉,现在返回数组id为1,2,4 三个成员
 const filter = arr.filter(item => item.state)
// reduce( (累计的变量,当前循环项)=>{}, 初始数值 )
 filter.reduce( (amt,item)=>{
   return amt += item.price * item.count
 }, 0 )
// 最后得出总价格
console.log(amt)

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Javascript – 数组应用
本篇文章主要讲述数组的几个处理方法。分别为 some,every,reduce
<<上一篇
下一篇>>