温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JS对象数组去重的方法有哪些

发布时间:2021-07-16 11:55:18 来源:亿速云 阅读:195 作者:chen 栏目:开发技术

本篇内容介绍了“JS对象数组去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

目录
  • 一.去重前后数据对比

  • 二.使用方法

    • 1.使用filter和Map

    • 2.使用reduce

    • 3.使用for循环

  • 三.2400条数据,三种方法处理时间对比

    一.去重前后数据对比

    // 原数据是这样的                   // 去重后数据是这样的
    [{                                [{
      "goodsId": "1",                    "goodsId": "1",
      "quota": 12,                       "quota": 12,
      "skuId": "1"                       "skuId": "1"
    },                                 },
    {                                  {
      "goodsId": "2",                    "goodsId": "2",
      "quota": 12,                       "quota": 12,
      "skuId": "2"                       "skuId": "2"
    },                                 }]
    {
      "goodsId": "1",
      "quota": 12,
      "skuId": "1"
    }]

    二.使用方法

    1. 使用filter和Map   ?????

    2. 使用reduce        ????

    3. for循环           ???

    结论:filter和Reduce时间上差别不是太大,filter稍微更快一些,但是filter语法更简洁

    1.使用filter和Map

    代码简洁,好用,4行代码搞定,平均耗费时间最短,五星推荐

    function uniqueFunc(arr, uniId){
      const res = new Map();
      return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
    }

    2.使用reduce

    代码稍多,平均耗费时间和第一不分伯仲,四星推荐

    function uniqueFunc2(arr, uniId){
      let hash = {}
      return arr.reduce((accum,item) => {
        hash[item[uniId]] ? '' : hash[item[uniId]] = true && accum.push(item)
        return accum
      },[])
    }

    3.使用for循环

    耗费时间较一二稍多,但是耗费时间平均,三星推荐

    function uniqueFunc3(arr, uniId){
      let obj = {}
      let tempArr = []
      for(var i = 0; i<arr.length; i++){
        if(!obj[arr[i][uniId]]){
          tempArr.push(arr[i])
          obj[arr[i][uniId]] = true
        }
      }
      return tempArr
    }

    三.2400条数据,三种方法处理时间对比

    测试次数filter Mapreducefor循环
    10.139892578125 ms0.19189453125 ms0.2060546875 ms
    20.12109375 ms0.1279296875 ms0.195068359375 ms
    30.112060546875ms0.11767578125 ms0.174072265625 ms
    40.10400390625 ms0.1728515625 ms0.18701171875 ms
    50.10986328125 ms0.12890625 ms0.175048828125 ms
    60.113037109375 ms0.10791015625 ms0.172119140625 ms
    70.134033203125 ms0.129150390625 ms0.172119140625 ms

    测试时间截图展示

    JS对象数组去重的方法有哪些

    JS对象数组去重的方法有哪些

    JS对象数组去重的方法有哪些

    JS对象数组去重的方法有哪些

    JS对象数组去重的方法有哪些

    JS对象数组去重的方法有哪些

    “JS对象数组去重的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    js
    AI