常用数组的用法和区别

68 阅读2分钟

for循环、forEach、for in 、for of 、map、filter的用法及区别

for循环、forEach、for in 、for of 、map、filter的用法及区别

  1. 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)
    }
  1. for..in..,性能低效,开发时尽量不用
let arr1=[1,2,3,4,5,6]
    let newArr=[]

//for in 
    for(let x in arr1){
        newArr.push(arr1[x]*2)
    }
  1. for...of...,开发时防止异步操作是可以用
  let arr1=[1,2,3,4,5,6]
    let newArr=[]
    //for of
    for(let item of arr1){
        newArr.push(item*2)
    }
  1. forEach:不会返回结果,必须要通过外部数组push
 let arr1=[1,2,3,4,5,6]
    let newArr=[]

    //forEach:不会返回一个结果,而是undiefund
    arr1.forEach(item=>{  
        newArr.push(item*2)
    })
  1. map,返回一个新数组,它不会检测一个空数组,也不会改变原始数组
  let arr1=[1,2,3,4,5,6]//map:map返回一个新的数组,不会检测空数组,也不会改变原始数组
    let newArr=arr1.map((item)=>{
        return item*2
    })
  1. filter:遍历过滤,它不会对空数组进行检测,也不会改变原始数组,它能通过筛选条件快速给出遍历结果,不符合条件的就不会去遍历,符合条件的才会遍历,极大的节省了遍历开销成本

let arr1=[1,2,3,4,5,6]

    function filterFN(num){
        return num>3
    }
    let newArr=arr1.filter(filterFN)

image.png 7. ### some() 方法:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

image.png

  1. findIndex, 用于查找数组中满足条件的对象的下标,return即可

image.png

  1. indexOf() 方法可返回数组中某个指定的元素位置。

该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。 如果在数组中没找到指定元素则返回 -1。

image.png

  1. includes() 方法 (检测数组 site 是否包含某个属性 runoob :)
let site = ['runoob', 'google', 'taobao']; 
site.includes('runoob'); // true 
site.includes('baidu'); // false