美文网首页
js数组对象去重小方法

js数组对象去重小方法

作者: 正正果实 | 来源:发表于2018-02-25 15:53 被阅读0次

如果是字符串数组,可以直接用es6的方法Array.from(new Set(arr))处理,但是通常我们接触到的数组都是对象数组,所以有以下两个小方法。
1.for循环
每次从原数组中取出一个对象,然后到新的对象中去访问这个对象的属性,如果能访问到值,则说明重复,否则把取出的这个对象放到结果数组中,同时把取出的这个对象的属性作为新对象的一个属性,并赋值为true

let arr = [
    {
        id: 111,
        value: 'dsada'
    },
    {
        id: 222,
        value: 'dseqwada'
    },
    {
        id: 333,
        value: 'dsaeqwda'
    },
    {
        id: 444,
        value: 'dsadfega'
    },
    {
        id: 111,
        value: 'dsada'
    },
    {
        id: 444,
        value: 'dsadfega'
    },
]

function uniqueArr(arr, key){
    let agentObj = {};
    let agentArr = [];
    for(let i = 0; i < arr.length; i++){
        if(!agentObj[arr[i][key]]){
            agentArr.push(arr[i]);
            agentObj[arr[i][key]] = true;
        }
    }
    return agentArr;
}
arr = uniqueArr(arr, 'id');
console.log(arr);

2.用reduce方法

let arr = [
{
  id: 111,
  value: 'dsada'
},
{
  id: 222,
  value: 'dseqwada'
},
{
  id: 333,
  value: 'dsaeqwda'
},
{
  id: 444,
  value: 'dsadfega'
},
{
  id: 111,
  value: 'dsada'
},
{
  id: 444,
  value: 'dsadfega'
},
]
function reduceArr(arr, key){
let hash = {};
arr = arr.reduce(function(item, next) {
hash[next[key]] ? '' : hash[next[key]] = true && item.push(next);
return item
}, [])
return arr;
}
arr = reduceArr(arr, 'id');
console.log(arr);

其实两个方法原理类似,只是写法不同。

相关文章

  • js中数组对象去重的方法

    采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法 参考js中数组对象去重的方法

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • 前端开发备忘录

    js 数组去重的方法 最常用的方式 对象键值法去重 es6 Set方法一键去重 js常见的循环与遍历以及不同循...

  • JS数组对象去重方法

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • 数组的去重和数组中对象的去重

    数组中对象去重 方式1 jq方式 方式2 原生js方式 普通数组的去重 方式1 普通的数组去重js 方式2 Se...

  • js对象数组深度去重和深度排序

    js对象数组深度去重和深度排序 要点:使用collect.js处理数组和对象 https://github.com...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

网友评论

      本文标题:js数组对象去重小方法

      本文链接:https://www.haomeiwen.com/subject/nhurxftx.html