课程内容来自视频链接
希望大家多多支持作者
本文记录用,防止遗忘
const arr = ['小红','大红','aaa','bbb']
// 找到元素对应的索引,foreach循环一旦开始就不能结束了
// 但是该方法的性能较差
arr.forEach((item,index)=>{
console.log('ok')
if(item=='aaa'){
console.log(index)
return
}
})
arr.some((item,index)=>{
console.log('ok')
if(item=='aaa'){
// 在找到对应的项之后,可以通过 return true 固定语法来终止 some循环
console.log(index)
return true
}
})
判断数组中的每一项是否都满足需求,满足返回true,不满足返回false
const arr= [
{id: 1, name: '西瓜', state: true},
{id: 2, name: '榴莲', state: true},
{id: 3, name: '草莓', state: true},
]
// 需求:判断数组中,水果是否被全选中了
const result = arr.every(item => item.state==true)
console.log(result)
普通实现
const arr = [
{ id: 1, name: '西瓜', state: true, price: 10, count: 1 },
{ id: 2, name: '榴莲', state: false, price: 80, count: 2 },
{ id: 3, name: '草莓', state: true, price: 20, count: 3 },
]
// 需求:把购物车数组中,已勾选的水果,总价累加起来!
let amt = 0 // 代表总价钱
arr.filter(item => item.state).forEach(item => {
amt += item.price * item.count
})
console.log(amt)
reduce实现
reduce循环可以理解为累加器,把每次循环的结果累加起来
const arr = [
{ id: 1, name: '西瓜', state: true, price: 10, count: 1 },
{ id: 2, name: '榴莲', state: false, price: 80, count: 2 },
{ id: 3, name: '草莓', state: true, price: 20, count: 3 },
]
// reduce((累加的结果, 当前循环项)=>{},初始值)
// 第二次循环amt的值就等于第一次循环return的值
const amt=arr.filter(item => item.state).reduce((amt, item)=>{
return amt += item.price * item.count
}, 0)
console.log(amt)