qq_57159670 2024-12-03 20:28 采纳率: 50%
浏览 17

两个数组对象怎么把相同的去掉

const date=[
 {name:"张三",sex:"男",id:1},
 {name:"李四",sex:"女",id:2},
 {name:"王五",sex:"男",id:3},
 {name:"我家哥哥",sex:"女",id:4},
 ]

const data = [
 {name:"小李",sex:"男",id:5},
 {name:"小明",sex:"男",id:6},
 {name:"小黄",sex:"男",id:7},
 {name:"我家哥哥",sex:"女",id:4},
]


两个数组对象怎么把相同的去掉,合成一个新数组

  • 写回答

2条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在前端,可以使用 JavaScript 的 Array 的 filter 和 find 方法来达到这个目标。我们可以先定义一个函数,用于判断一个对象是否存在于数组中,然后使用 filter 方法过滤掉重复的项。以下是一个示例代码:

    const date = [
        {name:"张三",sex:"男",id:1},
        {name:"李四",sex:"女",id:2},
        {name:"王五",sex:"男",id:3},
        {name:"我家哥哥",sex:"女",id:4},
    ];
    
    const data = [
        {name:"小李",sex:"男",id:5},
        {name:"小明",sex:"男",id:6},
        {name:"小黄",sex:"男",id:7},
        {name:"我家哥哥",sex:"女",id:4}, // 这里和 date 中的 "我家哥哥" 是重复的
    ];
    
    const combinedArray = date.concat(data); // 先合并两个数组
    const uniqueArray = combinedArray.filter((item, index) => {
        return combinedArray.findIndex(t => t.name === item.name && t.id === item.id) === index; // 判断当前项是否存在于数组中,如果不存在说明是重复的已去除
    });
    
    console.log(uniqueArray); // 输出处理后的新数组
    

    这个代码中,我们首先合并了两个数组 datedata。然后,我们使用 filter 方法遍历数组中的每一项,对于每一项,我们使用 findIndex 方法找到该项在数组中的位置。如果该项在数组中的位置与其索引相同(即它是唯一的),则返回 true,否则返回 false。这样,filter 方法会过滤掉重复的项,只留下唯一的项。最后,我们得到了一个新的数组 uniqueArray,它包含了所有的唯一项。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日