angularjs:无法循环检查数组中的现有对象

时间:2015-04-23 08:40:44

标签: javascript arrays angularjs

if (currentFirstNumber != null && currentSecondNumber != null) {
    var card = {
        id: rank + "_" + suit,
        rank: rank,
        suit: suit.toString()
    };
}
var exists = false;
for (i = 0; i < $scope.communityCards.length; i++) {
    if (card.id == $scope.communityCards[i].id) {
        exists = true;
        break;
    }
}
if (!exists) {
    $scope.communityCards.push(card);
}

我正在尝试在卡片组中获取卡片对象,但首先我想检查它是否已经存在,因为卡片是从哈希生成的。

如果卡片不存在,则一切顺利。但是当它已经存在时我会卡住,它总是返回检查它是否存在。虽然它应该退出for循环并继续使用通过哈希生成新卡的父循环(此处不可见)。

1 个答案:

答案 0 :(得分:0)

 card_ids = $scope.communityCards[i].map(function(card){ return card.id; });
 matched_cards = card_ids.filter(function(id){ return id==card.id; });

 //check matched_cards.length
 //if it is >0 then card is exit else not exist

 if(matched_cards.length>0){ 
   $scope.communityCards.push(card);
 }


 //---------------example--------------
  a = [{t:1}, {t:2}, {t:3}]
  c = a.map(function(e){ return e.t; })
  d = c.filter(function(e){ return e==2; });
  d.length