这个数组如何去重啊??

发布于 2022-09-06 03:46:54 字数 703 浏览 28 评论 0

var arr=[{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰科技发展股份有限公司"
        },]

结果是

var arr=[{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰科技发展股份有限公司"
        },]

可以使用underscore.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

时光礼记 2022-09-13 03:46:54

这和你之前那道题有什么不一样

    _.uniq(arr, true, item => {
      return item.source + item.target
    })
梦言归人 2022-09-13 03:46:54

我觉得可以给数组的每个对象元素用JSON.stringify()都转成字符串,去重之后再用JSON.parse()转回来

梨涡少年 2022-09-13 03:46:54

var arr =[{

        source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
    },{
        source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
    },{
        source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
    },{
        source: "天津华苑科技产业开发建设有限公司", target: "天津海泰方成投资有限公司"
    },{
        source: "天津华苑科技产业开发建设有限公司", target: "天津海泰科技发展股份有限公司"
    },]
var arr1=[];
for (var i=0;i<arr.length;i++) {
if (arr.indexOf(arr[i])==-1) {
arr1.push(arr[i])
}
}
玻璃人 2022-09-13 03:46:54
    function unique(arr) {
        let _arr = [],
            obj = {
                target: {},
                source: {}
            };
        arr.forEach(v => {
            if ((obj.target[v.target] || obj.target[v.target]) && v.source == v.target) {
                _arr.push(v);
                obj.target[v.target] = obj.source[v.source] = 1;
            }
            if (!obj.target[v.target] || !obj.source[v.source]) {
                _arr.push(v);
                obj.target[v.target] = obj.source[v.source] = 1;
            }
        });
        return _arr;
    }

比较丑陋。。。

蓦然回首 2022-09-13 03:46:54
var arr=[{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津海泰科技发展股份有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰方成投资有限公司"
        },{
            source: "天津华苑科技产业开发建设有限公司", target: "天津海泰科技发展股份有限公司"
        },]
        
const splitWord = '!@@#!'//最好加上分隔符

_.uniq(arr, item => {
  return item.source + splitWord + item.target//加上分隔符避免意外
})
握住我的手 2022-09-13 03:46:54

set 数据结构

let dedupeArr = [...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v));
[
    {
        "source": "天津海泰科技发展股份有限公司",
        "target": "天津海泰方成投资有限公司"
    },
    {
        "source": "天津华苑科技产业开发建设有限公司",
        "target": "天津海泰方成投资有限公司"
    },
    {
        "source": "天津华苑科技产业开发建设有限公司",
        "target": "天津海泰科技发展股份有限公司"
    }
]
一抹淡然 2022-09-13 03:46:54

const filterArr = arr.map(item => item.source + item.target).map((item, index, array) => {
    return array.indexOf(item) === index
})
const newArr = arr.filter((item, index) => {
    return filterArr[index]
})

console.log(newArr)

就酱

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文