整理一下javascript那些数组的遍历方式( 循环数组 )
1. 原生js中的for循环
let arr = [1,2,3,4,5]
for(let i = 0;i<arr.length;i++){
console.log(arr[i])
}
2.原生js中 for in (数组对象)效率低
for(let k in arr){
console.log(arr[k])
}
3. for of (虽然性能好for in 不能循环对象)
for(let key of arr){
console.log(key)
}
4. ES6 中的 forEach( ) 数组元素有几个,该方法的回调就会执行几次
arr.forEach((item,index,arr)=>{
console.log(item + '---' + index + '---' + arr)
})
5. map ( 遍历每一个元素且返回对应的元素 map映射 返回的新数组和旧数组的长度是一样的 )
let maparr = [1,2,3,4,5,6,7,8,9]
let newarr = maparr.map((item,index)=>{
return item * item
})
console.log(newarr)
filter 过滤 遍历数组,过滤出符合条件的元素并返回一个新数组
let datalist = [
{id:1,name:'买笔',done:true},
{id:1,name:'买笔记本',done:false},
{id:1,name:'练字',done:true}
]
let after = datalist.filter((item,index)=>{
return item.done
});
some 遍历数组,只要有一个以上的元素满足条件 就返回true ,否则返回 false
let somebool = datalsit.some((item,index)=>{
return item.done
})
every 遍历数组,每一个元素都满足条件 则返回 true 否则返回 false
let everybool = arr.every((item,index)=>{
return item.done
})
console.log(everybool)
find ES6 遍历数组,返回符合条件的第一个元素,如果没有符合条件的元素则返回 undefined
let arr1 = [1,2,3,4,5,6,7]
let num = arr1.find((item,index)=>{
return item === 3
})
console.log(num)
findIndex(ES6)遍历数组,返回符合条件的一个元素的索引,如果没有符合条件的元素则返回-1
let arr2 = [1,2,3,5,7,8,2,4,5];
let num = arr2.findIndex((item,index)=>{
return item === 3
})
console.log(num)