整理一下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)