和之前for循环作用基本一样,只不过比for更灵活方便一些
参数:回调函数,该回调函数有三个参数
用于查找在数组中的位置,返回值为索引,如果没有找到返回-1
参数:
const arr = [1,2,3,4,5]
const index = arr.indexOf(2)
console.log(index)
some方法可以用作条件查找,循环的过程中,只要有一个能满足条件,即停止循环,并返回值
返回值:
const arr = [1,2,3,4,5]
arr.some(item => {
return item === 4
})
和includes的区别:
every方法是返回的条件全部成立即返回true,否则返回false
只要有一项不成立,循环立即停止,并返回false
const arr = [1,2,3,4,5]
const flag = arr.every(item => {
return item === 3
})
console.log(flag) // false
全选功能
进行数组映射,及数组格式化,会返回一个新数组,新数组的值来自于map回调函数内的返回值
特点:
const arr = [1,2,3,4,5]
const newArr = arr.map(item => {
return item + 1
})
console.log(newArr) // [2,3,4,5,6]
实际应用:
后端返回数据格式为:
const arr = [
{ id: 1, title: '好房', tags: '南北朝向,地铁近,有公交' },
{ id: 2, title: '好房', tags: '地铁近,有公交' }
]
前端数据处理:
const newArr = arr.map(item => {
return {
...item,
tags: item.tags.split(',')
}
})
console.log(newArr)
react中将数据处理为jsx数组或更新数据均使用map
实现数组过滤,返回值为新数组,新数组中的数据来自于,回调函数中返回条件为true的数据
const arr = [1,2,3,4,5]
const newArr = arr.filter(item => {
return item%2 === 0
})
console.log(newArr) // [2,4]
方法对数组中的每个元素按序执行一个由您提供的 reduce 函数,每一次运行 reduce 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
参数:
const arr = [1,2,3,4,5]
const total = arr.reduce((pre, cur) => {
console.log(pre, cur)
return pre + cur
}, 0)
console.log(total) // 15
const arr = [
{ num: 2, price: 178 },
{ num: 3, price: 188 },
{ num: 1, price: 168 }
]
const totalPrice = arr.reduce((pre, cur) => {
return pre += cur.num * cur.price
}, 0)
console.log(totalPrice)