forEach 一旦开始,无法在中间停止
const arr = ['a','b','c','d']
arr.forEach((item,index) => {
if(item === 'b'){
console.log(index);
}
})
如果要找到某个列数据建议使用some
arr.some((item,index) => {
if(item === 'b'){
console.log(index)
return true//可以终止循环
}
})
判断是否全选
const arr = [
{id: 1, name: 'a', state: true},
{id: 2, name: 'b', state: true},
{id: 3, name: 'a', state: false}
]
const result = arr.every(item => item.state)
console.log(result)
吧已选的数据的总价累加
const arr = [
{id: 1, name: 'a', state: true, price: 10, count: 1},
{id: 2, name: 'b', state: true, price: 80, count: 2},
{id: 3, name: 'a', state: false, price: 20, count: 3}
]
//一般做法
let amt = 0 // 总价
arr.filter(item => item.state).forEach(item => {
amt += item.price * item.count
})
//reduce 方法
const result = arr.filter(item => item.state).reduce((amt,item) => {
return amt += item.price * item.count
},0)