for循环、forEach、for in 、for of 、map、filter的用法及区别
for循环、forEach、for in 、for of 、map、filter的用法及区别
- for循环,处理大量数据,复杂逻辑的时候用,性能最佳
案例:
let arr1=[1,2,3,4,5,6]
let newArr=[]
// for循环
for(let i=0;i<arr1.length;i++){
newArr.push(arr1[i]*2)
}
- for..in..,性能低效,开发时尽量不用
let arr1=[1,2,3,4,5,6]
let newArr=[]
//for in
for(let x in arr1){
newArr.push(arr1[x]*2)
}
- for...of...,开发时防止异步操作是可以用
let arr1=[1,2,3,4,5,6]
let newArr=[]
//for of
for(let item of arr1){
newArr.push(item*2)
}
- forEach:不会返回结果,必须要通过外部数组push
let arr1=[1,2,3,4,5,6]
let newArr=[]
//forEach:不会返回一个结果,而是undiefund
arr1.forEach(item=>{
newArr.push(item*2)
})
- map,返回一个新数组,它不会检测一个空数组,也不会改变原始数组
let arr1=[1,2,3,4,5,6]//map:map返回一个新的数组,不会检测空数组,也不会改变原始数组
let newArr=arr1.map((item)=>{
return item*2
})
-
filter:遍历过滤,它不会对空数组进行检测,也不会改变原始数组,它能通过筛选条件快速给出遍历结果,不符合条件的就不会去遍历,符合条件的才会遍历,极大的节省了遍历开销成本
let arr1=[1,2,3,4,5,6]
function filterFN(num){
return num>3
}
let newArr=arr1.filter(filterFN)
7. ### some() 方法:
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
- findIndex, 用于查找数组中满足条件的对象的下标,return即可
- indexOf() 方法可返回数组中某个指定的元素位置。
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。 如果在数组中没找到指定元素则返回 -1。
- includes() 方法 (检测数组 site 是否包含某个属性 runoob :)
let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); // true
site.includes('baidu'); // false