js遍历效率

1w条数据,遍历效率

1、for

15s

    let t=(new Date()).getTime()
    let a=[]
    for(var i = 0; i < 100000; i++){
       a.push({id:i,val:i})
    }
    let ts=[]
    for(var i = 0; i < a.length; i++){
      if(a[i].val!=2 && a[i].val!=4 && a[i].val!=8){
        ts.push(a[i])
      }
    }
    let c=(new Date()).getTime()
    console.log(c-t,t,c,ts)//15
2、map

14s

    let t=(new Date()).getTime()
    let a=[]
    for(var i = 0; i < 100000; i++){
       a.push({id:i,val:i})
    }
    let ts=[]
    a.map(x=>{
      if(x.val!=2 && x.val!=4 && x.val!=8){
        ts.push(x)
      }
    })
    let c=(new Date()).getTime()
    console.log(c-t,t,c,ts)//14
3、forEach

19s

   let t=(new Date()).getTime()
    let a=[]
    for(var i = 0; i < 100000; i++){
       a.push({id:i,val:i})
    }
    let ts=[]
    a.forEach(x=>{
      if(x.val!=2 && x.val!=4 && x.val!=8){
        ts.push(x)
      }
    })
    let c=(new Date()).getTime()
    console.log(c-t,t,c,ts)//19
4、filter+forEach

21s

    let t=(new Date()).getTime()
    let a=[]
    for(var i = 0; i < 100000; i++){
       a.push({id:i,val:i})
    }
    let ts=[]
    a.filter(x=>x.val!=2 && x.val!=4 && x.val!=8).forEach(x=>{
      ts.push(x)
    })
    let c=(new Date()).getTime()
    console.log(c-t,t,c,ts) //21
5、filter+map

35s

    let t=(new Date()).getTime()
    let a=[]
    for(var i = 0; i < 100000; i++){
       a.push({id:i,val:i})
    }
    let ts=[]
    a.filter(x=>x.val!=2 && x.val!=4 && x.val!=8).map(x=>{
      ts.push(x)
    })
    let c=(new Date()).getTime()
    console.log(c-t,t,c,ts)  //35
    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值