如何忽略控制器中的重复值

时间:2017-04-17 00:55:58

标签: javascript angularjs if-statement duplicates

angular.forEach(game.market, function (market) {
  if (availableMarketGroups[market.group_id]) {
      availableMarketGroups[market.group_id].count++;
  }
});

我需要得到:

if(availableMarketGroups [market.group_id]&&和此值未在此foreach中替换)而不是count ++

从swarm我得到随机数, 例如,我得到a,b,b,b,c,d,d - >长度是7 但我想忽略重复的id并从a,b,b,b,c,d,d - >获得; 4

availableMarketGroups [market.group_id]只是id号,如果这个号码有值,那么我加上计数比例,但有时这个计数是重复的,我不能得到写入计数,我不需要减少或删除重复的值,我需要忽略它并得到正确的计数

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望计算独特的ID?您可以使用像地图这样的js对象来存储您已经看过的ID。一般算法是:

var map = {};
var count = 0;
['a' , 'b' , 'b' , 'b' , 'c' , 'd' , 'd'].forEach(function(id){
  if(!map[id]){
    map[id] = true;
    count++;
  }
});

console.log(count);

在你的情况下,它可能看起来更像是这样:

var map = {};
game.market.forEach(function(market){
  if(!map[market.group_id] && availableMarketGroups[market.group_id]){
    map[market.group_id] = true;
    availableMarketGroups[market.group_id].count++;
  }
});