2017-04-17 9 views
-1
angular.forEach(game.market, function (market) { 
    if (availableMarketGroups[market.group_id]) { 
     availableMarketGroups[market.group_id].count++; 
    } 
}); 

に重複値を無視:どのように取得する必要があり、コントローラ

場合(availableMarketGroupsは[market.group_id] & &と、この値は、このforeachの中に置き換えられない)カウントよりも++

から私は乱数を得る、 例えば、私は、b、b、b、c、d、dを取得する - 長さは7 ですが、私は重複IDを無視して、 d、d - > 4

availableMarketGroups [market.group_id]は単なるID番号ですが、この数値に値がある場合、私は分数を追加しますが、時にはこの数が重複し、書き込み回数が減ります。重複した値を削除したり削除したりする必要はありません私はちょうどそれを無視し、右のカウントを取得する必要があります

+1

有意義 – Aravind

+0

@Aravindプロジェクトはとても大きいであることを確認するためにあなたのポストを修正、そのそれの少しの部分、私はif文で置き換えられた値を無視する必要があります –

+0

はどこから値を置き換えましたか?あなたが値を削除したい、あるいは正確に何を達成しようとしているのか無視することによって? – Aravind

答えて

0

私は正しくあなたがユニークなidsを数えたいと思いますか?すでに見たidを保存するためにマップのようなjsオブジェクトを使うことができます。一般的なアルゴリズムは次のようになります。

あなたのケースで

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++; 
    } 
}); 
関連する問題