【发布时间】:2018-12-07 21:21:46
【问题描述】:
我查看了许多堆栈溢出问题,但似乎没有一个能完全回答我的问题。我有一个对象数组,我想通过删除键和值相同的所有对象来减少它们。
所以我的对象数组是:
[{a:1},{a:2},{c:3},{b:1},{a:1},{c:3},{c:4},{a:1}]
最终结果应该是:
[{a:1},{a:2},{c:3},{b:1},{c:4}]
我尝试过使用 filer 和 map,但我只能获取数组中的第一个对象,而不是数组中具有不同键/值对的所有对象。我也尝试过使用 filter 和 findIndex,但遇到了同样的问题。
我也无法在将对象推入数组之前对其进行过滤。
有人能指出正确的方向吗?
【问题讨论】:
-
看起来,所有对象都是独一无二的。
-
怎么回事?在原始数组中,有三个对象都是 {a:1},还有两个是 {c:3}
-
@Teemu 我也看过那个,但是使用 filter 和 findIndex 的解决方案只返回唯一对象的第一个实例
-
@flored27,包含相同键和值的对象不相等;只有对同一对象的引用是相等的。这就是为什么
{} !== {}。 -
@Teemu 看起来接受的答案在将对象放入数组之前对其进行了过滤。但是,我已经有一个对象数组,无法预先过滤
标签: javascript arrays object filter