Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何忽略if语句中的重复值?_Javascript_Angularjs_Foreach_Duplicates - Fatal编程技术网

Javascript 如何忽略if语句中的重复值?

Javascript 如何忽略if语句中的重复值?,javascript,angularjs,foreach,duplicates,Javascript,Angularjs,Foreach,Duplicates,market.group_id-编号,未排序,有时重复 availableMarketGroups[market.group\u id].count-其长度 让我们查看图像以了解更多信息 市场群体的数量并不代表市场的实际数量 availableMarketGroups[market.group\u id]。计数显示为-15,但实际上应该是5(5个组),因为market.group\u id是重复的 如何忽略if语句中重复的market.group_id值?var availableMarket

market.group_id-编号,未排序,有时重复 availableMarketGroups[market.group\u id].count-其长度

让我们查看图像以了解更多信息

市场群体的数量并不代表市场的实际数量

availableMarketGroups[market.group\u id]。计数显示为-15,但实际上应该是5(5个组),因为market.group\u id是重复的

如何忽略if语句中重复的market.group_id值?

var availableMarketGroups={};
var availableMarketGroups = {};

angular.forEach(function (market) {

  if (availableMarketGroups[market.group_id]) { // market.group_id is not sorted id
       availableMarketGroups[market.group_id].count++;
  }  
});
var groupsProcessed=[]; angular.forEach(可用marketGroup,函数(marketGroup){ if(groupsProcessed.indexOf(marketGroup.group\u id)<0){ groupsProcessed.push(marketGroup.group\u id); AvailableMarketGroup[market.group_id].count++; } });
计算唯一数组元素的答案是生成一个如下所示的函数

var availableMarketGroups = {};
var groupsProcessed = [];

angular.forEach(availableMarketGroups, function(marketGroup) {
    if (groupsProcessed.indexOf(marketGroup.group_id) < 0) {
        groupsProcessed.push(marketGroup.group_id);
        availableMarketGroups[market.group_id].count++;
    }
});
var计数={};
对于(变量i=0;i
它将返回数组中元素的唯一计数


参考资料:

如果没有您的数据,很难说。一般来说,您应该能够
减少到
组id的唯一集合:

var counts = {};
for (var i = 0; i < arr.length; i++) {
    counts[arr[i]] = 1 + (counts[arr[i]] || 0);
}

您可以使用下划线:

const uniqueGroups = markets.reduce(function(set, market) {
  if (!set.has(market.group_id)) {
    set.add(market.group_id);
  }
  return set;
}, new Set());

console.log('Unique group count: ', uniqueGroups.size);

似乎一切都是独一无二的。更新您的json和预期outptut@Aravindjson来自swarm、websocket
var newObj = _.uniq(market, function(p){ return p.group_id; });