1.数组map遍历
map作用与场景: 映射数组 (将数组每一个元素处理之后,得到一个新数组)
- 循环执行次数 == 数组长度
- return 是新元素值;没有return 新元素都是undefined
- map语句会返回一个新数组
> let arr = [10,20,30,40,50]
let res = arr.map( value=>value+1 )
let res = arr.map( (value,index)=>{
return value+1
})
console.log(res)
2.数组filter遍历
filter作用与场景 : 筛选数组(根据条件筛选数组,将符合条件的元素放入新数组中)
- 循环执行次数 == 数组长度
- return true :满足筛选条件,当前元素放入新数组中;
return false : 不满足筛选条件,当前元素不放入新数组中;
filter语句返回筛选之后的新数组
let arr = [20, 65, 80, 95, 100]
let res = arr.filter(value=>value % 2 == 0)
let res = arr.filter((value, index) => {
if(value % 2 == 0){
return true
}
})
console.log( res )
3.数组forEach遍历
forEach作用与场景 : 遍历数组 类似于for循环遍历数组
- 循环执行次数 == 数组长度
- 回调函数内部无return
- forEach本身无返回值
arr.forEach( (value,index) => {
console.log(value,index)
})
4.数组every遍历 全真为真
every作用与场景 : 判断数组是否所有的元素都满足条件 ( 逻辑与&& )
- 经典场景 : 开关思想. 购物车全选
- 循环执行次数 != 数组长度
- return true : 循环继续。当前元素满足条件,则继续判断。如果所有元素满足条件则every返回值的是true
return false : 循环结束。当前元素不满足条件则结束循环。every的返回值就是false
let arr = [10, 20, 30, 40, 50]
let res = arr.every( value => value > 0)
let res = arr.every((value, index) => {
if(value > 0){
return true
}
})
console.log( res )
5.数组some遍历 一真则真
some作用与场景 : 判断数组中是否有满足条件的元素 ( 逻辑或|| )
- 找到满足条件的元素则返回true反之false
- 循环执行次数 != 数组长度
- return true :循环结束。找到满足条件的元素则结束循环,此时some的返回值是true
return false :循环继续。循环所有没有找到满足条件的元素;则some的返回值是false
let arr = [10, 20, -30, 40, 50]
let res = arr.some(value => value < 0)
let res = arr.some((value, index) => {
if(value < 0){
return true
}
})
console.log(res)
6.数组 findIndex查找元素下标

7.new Set 数组去重复
- 用
new Set去重的数组得到的结果不是数组,需要重新转成数组

7.非空判断 开关思想

8.Array.from()
伪数组
- 具有length属性
- 按索引方式储存数据
- 不具有数组的.push .pop 等方法
9.reduce() 累加和
- reduce((累加值(acc),item(cur))=>累加值+item,0)
10.find()找到符合条件的数据并返回
[1, 4, -5, 10].find((n) => n < 0)