我有两组卡片array(a)和array(b) 将array(a)看作是主控台,而将array(b)当作玩家卡。
我正在遍历array(a),然后检查array(b)中是否存在。如果没有,那么我从array(a)中删除了。 html绑定到array(1)中剩下的内容,下面的代码可以正常工作。
但是现在我意识到array(b)可能有重复的示例[cardID:1,cardID:2,cardID:3,cardID:3,cardID:4]
所以我添加了第三个数组,因为我也想保留重复的数组,所以我推到了最后一个数组。但是此代码不会获取重复的cardID3,不确定如何执行此操作吗?
var i = 0;
var entry1;
while (i < this.myCardsArray.length) {
entry1 = this.myCardsArray[i];
if (this.cardsArray.some(function(entry2) { return entry1.id === entry2.cardID; })) {
// Found, progress to next
this.finalCardsArray.push(this.myCardsArray[i]) //added this line to save results
++i;
} else {
// Not found, remove
this.myCardsArray.splice(i, 1);
}
}
答案 0 :(得分:0)
var master_A = [
{
cardID: 1,
extra: 'stuff'
},
{
cardID: 2,
extra: 'stuff'
},
{
cardID: 3,
extra: 'stuff'
},
{
cardID: 4,
extra: 'stuff'
}
]
鉴于主机集在id-s上具有唯一性->我将创建一个新对象,将该对象映射到其id-s
var master_map_A = {};
master_A.forEach(function(card) {
master_map_A[card.cardID] = card
})
然后通过遍历列表并引用为master_map_A [card.cardID] ...
,从slave_B集中引用它们,以获取所需的其他信息。var slave_B = [
{
cardID: 1
},
{
cardID: 2
},
{
cardID: 3
},
{
cardID: 3
},
{
cardID: 4
}
]