underscorejs _uniq 没有正确过滤

underscorejs _uniq not filtering correctly

我在我的 angular 项目中使用 underscorejs 以删除数组中的重复对象。 Underscorejs 正在过滤,但由于某种原因它在 biddingGroup 中一次只保留两个字符串数组。如果其他人出价不在数组中,那么它将覆盖数组槽之一而不是附加新行,因为它不是唯一的。感谢您对此提供的任何帮助!

如果您需要更多信息,请告诉我。

var newBidder = [{
  bidderId: this.userId
}]

biddingGroup.push(newBidder);
console.log("BEFORE USING UNDERSCOREJS");
console.log(biddingGroup);

this.uniqueResult = _.uniq(biddingGroup, "bidderId");

console.log("UNIQUE RESULT");
console.log(this.uniqueResult);

查看控制台输出,您的初始数组不是对象数组,而是单元素对象数组的数组:

var biddingGroup = [
    [ { bidderId: xxx } ],
    [ { bidderId: xxx } ]
];

所以结果很好:第二个数组作为第一个数组的副本被删除(两者都有一个未定义的bidderId)。