Javascript 如何忽略if语句中的重复值?
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值?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
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; });