1.some方法和forEach区别
const arr = ['小红', '小明', '张三', '李四']
//需求 查找张三的索引
//可以用forEach循环,但性能较差。原因:找到张三后,后面的循环理应终止,但forEach循环无法被终止
arr.forEach((item, index) => {
if (item === '张三') {
console.log(index);
}
console.log(index); //这行代码可以判断forEach循环执行了整个循环(且forEach无法使用break,或者return终止函数)
})
//some方法,如果查找到了符合条件的元素,则终止循环。
arr.some((item, index) => {
if (item === '张三') {
// 扎到对应项之后,可以用过return true 固定语法来终止some循环
return true
}
})
2. 数组中every方法
//数组中的every方法,数组中所有元素满足条件则返回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
3.数组的reduce方法
//数组中的reduce方法,需求计算数组中商品的总价
//分析reduce函数。reduce((累加的结果,当前循环项)=>{},初始值)
const arr = [{
id: 1,
name: '西瓜',
state: true,
price: 10,
count: 1,
}, {
id: 2,
name: '草莓',
state: true,
price: 20,
count: 3,
}, {
id: 3,
name: '桃子',
state: true,
price: 15,
count: 3,
}]
const result = arr.reduce((amt, item) => {
return amt += item.price * item.count
}, 0)
console.log(result); // 115