【发布时间】:2019-07-25 18:41:43
【问题描述】:
我正在尝试在对象数组中查找重复值并在 es6 函数中返回真值。
arrayOne = [{
agrregatedVal: "count",
value: "Employee Full Name"
},
{
agrregatedVal: "min",
value: "Employee Full Name"
},
{
agrregatedVal: "min",
value: "Employee Full Name"
},
{
agrregatedVal: "count",
value: "Pay Date"
},
{
agrregatedVal: "count",
value: "Employee Full Name"
},
{
agrregatedVal: "min",
value: "Signature"
},
{
agrregatedVal: "min",
value: "Pay Date"
}]
以上是json的结构
这里我有两个重复的对象:
{
agrregatedVal: "min",
value: "Employee Full Name"
}, {
agrregatedVal: "min",
value: "Employee Full Name"
}
不关心剩余的,因为每个对象的两个值都不同。
如果每个对象值与同一数组的另一个对象重复,则它应该返回 true。
我是这样尝试的:-
this.arrayOne = this.arrayOne.filter((thing, index, self) => {
return index === self.findIndex((t) => {
return t.agrregatedVal === thing.agrregatedVal && t.value === thing.value;
});
});
它起作用了,如果每个值的对象与另一个对象相同,如何返回 true。
【问题讨论】:
-
你永远不会从你的回调函数中返回任何东西。应该是
return index === ...,或者你应该去掉花括号。 -
我试图删除花括号它仍然对我有用
-
您也必须对内部回调执行相同的操作。 jsfiddle.net/twox60dm
-
它删除重复值并返回数组,但我只需要布尔值而不是数组
-
哪个布尔值?清楚地解释你的方法应该做什么:“我的方法应该在......时返回true”。您发布的代码创建了一个过滤数组。
标签: angular typescript