当前位置: 首页 > 知识库问答 >
问题:

如何使用Javascript[duplicate]从具有多个参数的数组中删除重复项

晏富
2023-03-14

我正在尝试格式化从csv文件创建的数组。在将其解析为正确的格式后,我需要一种方法来删除我在csv文件中遇到的重复项。

这是我拥有的数组的一个示例

[{
    "pccs": ["1ADA"],
    "markets": [{
        "origin": "LAX",
        "destination": "DFW"
    }, {
        "origin": "LAX",
        "destination": "IAH"
    }, {
        "origin": "LAX",
        "destination": "IAH"
    }, {
        "origin": "LAX",
        "destination": "IAH"
    }]
}, {
    "pccs": ["1ABA"],
    "markets": [{
        "origin": "LAX",
        "destination": "JFK"
    }]
}]

我试图将其格式化为仅为列表中的每个元素显示一个唯一集,以获得如下响应:

[{
    "pccs": ["1ADA"],
    "markets": [{
        "origin": "LAX",
        "destination": "DFW"
    }, {
        "origin": "LAX",
        "destination": "IAH"
    }]
}, {
    "pccs": ["1ABA"],
    "markets": [{
        "origin": "LAX",
        "destination": "JFK"
    }]
}]

我倾向于使用filter()函数,但不确定如何用对象列表实现它。我需要创建一个嵌套循环来访问每个元素吗?

共有1个答案

夏侯渊
2023-03-14

可以使用every()创建一个助手函数来比较两个对象。然后在数组每个元素的市场上使用filter(),并移除所需元素。

注意:我使用了forEach,code将修改原始数组,因为我认为您需要修改原始数组。如果不是这样,请询问我,我将添加其他解决方案。

const arr = [{ "pccs": ["1ADA"], "markets": [{ "origin": "LAX", "destination": "DFW" }, { "origin": "LAX", "destination": "IAH" }, { "origin": "LAX", "destination": "IAH" }, { "origin": "LAX", "destination": "IAH" }] }, { "pccs": ["1ABA"], "markets": [{ "origin": "LAX", "destination": "JFK" }] }]

const compObjs = (obj1, obj2) => Object.keys(obj1).every(k => obj1[k] === obj2[k])
arr.forEach(x => {
  x.markets = x.markets.filter(a => x.markets.find(b => compObjs(b,a)) === a)
})
console.log(arr)

 类似资料:
  • 问题内容: 我有一个非常简单的JavaScript数组,其中可能包含重复项,也可能不包含重复项。 我需要删除重复项并将唯一值放入新数组中。 我可以指出我尝试过的所有代码,但是我认为这没用,因为它们不起作用。我也接受jQuery解决方案。 问题答案: 快速的使用jQuery:

  • 我有数组的电子邮件和ID,所以我想删除重复的元素谁有类似的ID的。 例子: 现在我需要删除具有ID的重复元素是常见的。从某种意义上说,我期待最终的阵列是

  • 问题内容: 我有一个numpy值数组: 我想从数组中删除具有重复值的行。例如,上述数组的结果应为: 我不确定如何使用numpy有效地做到这一点而无需循环(数组可能会很大)。有人知道我该怎么做吗? 问题答案: 这是一个选择:

  • 如何从另一个数组中删除数组的元素?我有第一个数组[“a”“b”“c”]。以及第二阵列[“a”、“e”]、[“e”、“b”、“c”]、[“a”、“c”]。 如何从第二个数组中删除第一个数组的元素? 结果,得到[["e"],["e"], []].

  • 问题内容: 我使用下面的代码行遍历数据库中的一个表: 如果我打印出数组: 我会得到这个: 但是我想摆脱数组中的重复项,所以我使用 我得到下面的奇怪结果,这不是我想要的结果: 理想情况下,我认为它应该返回以下内容: 我该怎么做才能正确处理?我使用了错误的PHP语法/默认功能吗? 问题答案: 该功能将为您完成此操作。您只需要添加标志:

  • 问题内容: 我有一个包含对象数组的对象。 我想知道什么是从数组中删除重复对象的最佳方法。举例来说,事物……东西将变成…… 问题答案: 一种原始方法是: