一、find()
- 作用: 寻找数组中有没有符合条件的元素
- 影响: 不会改变原数组
- 返回值: 只要找到一个就返回这个元素,没找到就返回
undefined
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res1 = goodsList.find(item => item.price > 1000)
console.log(res1)
二、some()
- 作用: 确认数组中有没有符合条件的元素
- 影响: 不会改变原数组
- 返回值: 只要找到一个就返回
true,没找到就返回 false
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res2 = goodsList.some(item => item.price > 1000)
console.log(res2)
三、every()
- 作用: 确认数组中是否所有的元素都符合要求
- 影响: 不会改变原数组
- 返回值: 只要有一个不符合就返回
false ,否则返回 true
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res3 = goodsList.every(item => item.price > 1000)
console.log(res3)
四、map()
- 作用: 映射数组中的元素
- 影响: 不会改变原数组
- 返回值: 返回映射后的新数组
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res4 = goodsList.map(item => item.price * 0.9)
console.log(res4)
const res5 = goodsList.map(({ id, price }) => { return { id, price: price * 0.9 } })
console.log(res5)
const res6 = goodsList.map((item) => item.price > 10000)
console.log(res6)
const res7 = goodsList.map((item) => item.price > 999)
console.log(res7)
const res8 = goodsList.map((item) => {
if (item.price > 999) {
return item
}
})
console.log(res8)
五、findIndex()
- 作用: 根据条件寻找元素的索引
index
- 影响: 不会改变原数组
- 返回值: 返回该元素的索引
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res9 = goodsList.findIndex(item => item.id === 104)
console.log(res9)
六、filter()
- 作用: 过滤符合条件的元素
- 影响: 不会改变原数组
- 返回值: 返回一个过滤后的数组
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res10 = goodsList.filter(item => item.price < 1000)
console.log(res10)
七、reduce()
- 参数1:上一次回调的返回值,默认是第一个元素
- 参数2:当前元素值
- 参数3:当前下标
- 场景:数组求和、最值、去重等
- 影响: 不会改变原数组
- 返回值: 返回求和或最值的结果
const goodsList = [
{ id: 101, price: 2000 },
{ id: 102, price: 1000 },
{ id: 103, price: 899 },
{ id: 104, price: 999 },
{ id: 105, price: 5000 },
]
const res11 = goodsList.reduce((sum, item) => { return item.price + sum }, 0)
const res12 = goodsList.reduce((sum, item) => item.price + sum, 0)
const res13 = goodsList.reduce((sum, item) => sum += item.price, 0)
console.log(res11, res12, res13)
const res14 = goodsList.reduce((sum, item) => sum > item ? sum : item, 0)
console.log(res14)