H5W3
当前位置:H5W3 > 其他技术问题 > 正文

js数组对象去重

 let arr = [
{
pk:'1',
name:'张',
age:'13'
},
{
pk:'2',
name:'张',
age:'23'
},
{
pk:'1',
name:'张',
age:'13'
}
]

有什么快捷的方式可以去除数组里一模一样的对象吗?

对象1和3是一样的

回答

用 Lodash 一个函数就能搞定 uniqWith
https://www.lodashjs.com/docs…

关键是找到计算相同的算法,如果没啥特别的,用 Lodash 的 isEquals 也挺方便
https://www.lodashjs.com/docs…

import _ from "lodash";

const result = _.uniqWith(arr, _.isEqual);
let result = [...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v));

sliceArr(arr) {
let obj = {};
return (arr = arr.reduce((item, next) => {
obj[next.pk] ? ” : (obj[next.pk] = true && item.push(next)); return item;
}, []));
}

数组去重的你可以看看我这篇文章数组去重,上面写的这个就是我文章里记录的第七种方法,不足之处,欢迎指正。

let obj = {},
    arrNew = [],
    arr = [
    {
        pk:'1',
        name:'张',
        age:'13'
    },
    {
        pk:'2',
        name:'张',
        age:'23'
    },
    {
        pk:'1',
        name:'张',
        age:'13'
    }
    ];
for(let i of arr){
    let sy = JSON.stringify(i)
    if(!obj[sy]){
      obj[sy] = true;
      arrNew.push(JSON.parse(sy))
    }
}

未经允许不得转载:H5W3 » js数组对象去重

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址