Javascript 如何在forEach中删除对象中的重复值
我有一辆这样的车Javascript 如何在forEach中删除对象中的重复值,javascript,angularjs,foreach,duplicates,Javascript,Angularjs,Foreach,Duplicates,我有一辆这样的车 angular.forEach(game.market, function (market) { if (availableMarketGroups[market.group_id]) { availableMarketGroups[market.group_id].count++; } }); 我需要检查,如果availableMarketGroups[market.group\u id]编号重复,则忽略它 例如,我的id为:a、b、b、c、d-->最终
angular.forEach(game.market, function (market) {
if (availableMarketGroups[market.group_id]) {
availableMarketGroups[market.group_id].count++;
}
});
我需要检查,如果availableMarketGroups[market.group\u id]编号重复,则忽略它
例如,我的id为:a、b、b、c、d-->最终计数为6
我还需要检查,如果重复,则忽略它并获得最终计数4您可以使用辅助结构来存储不同的组id
var summedGroupId = [];
angular.forEach(game.market, function (market) {
if (availableMarketGroups[market.group_id]) {
if (summedGroupId.indexOf(market.group_id) < 0) {
availableMarketGroups[market.group_id].count++;
summedGroupId.push(market.group_id);
}
}
});
var summedGroupId=[];
角度。forEach(游戏。市场,功能(市场){
if(可用的MarketGroup[market.group\u id]){
if(summedGroupId.indexOf(market.group\u id)<0){
AvailableMarketGroup[market.group_id].count++;
summedGroupId.push(market.group\u id);
}
}
});
所以你想要
ids=[];
for(key in game.market){
if(game.market.hasOwnProperty(key)){
ids.push(game.market[key].group_id);
}
}
ids=ids.sort();
uniqueids=ids.filter((el,id)=>(!id||el!=ids[id-1]));
console.log(uniqueids.length);
一个新数组中的所有id,经过排序和筛选后都是唯一的,因此您可以轻松检查其长度。根据您的评论,我可以猜测您想要什么,但availableMarketGroups[market.group\u id]表示AvailableMarketGroup具有以下结构:
{ someGroupId: someValue, someGroupId2: someValue2, ...}
而且,看起来您希望这些值是唯一的,并针对当前的游戏市场进行过滤。
(命名为“game.market”并不恰当地表明它实际上是市场)
1。使用reduce的方法
const reducedMarketGroups = availableMarketGroups.reduce((prev, curr) => {
if (
game.markets.find(market => market.group_id === curr) &&
!prev.includes(curr)
) prev.push(curr);
return prev;
}, []);
2。使用集合进近
const reducedMarketGroups = [...new Set(
availableMarketGroups.filter(marketGroup =>
game.markets.find(market => market.group_id === marketGroup)
)
)];
我相信您只需要从阵列中删除重复项,然后执行循环。看这个:这有点混乱。你的截图显示的是什么?带有键
72799064
和72799067
的那一个。count++;不会工作,因为没有计数变量。@ScottMarcus数据来自swarm,来自后端,我只能编辑并将其放在我的html:)@acdcjunior此id是我的市场id,相同的是AvailableMarketGroup->markethi,它看起来简单而优雅,但计数再次显示错误的数字,它的数据与此对象:`72799064 72799067。。。这个在图像中可见的物体你能创造一些小提琴或弹琴吗?很简单,很难理解,我必须把它放在哪里?在foreach之前还是在foreach中?谢谢关注:)是的,但有人认为,我只需要检查它,如果可用MarketGroup[market.group_id]是否重复,就不要删除它。