我有一个这样的排序数组:
var a= [
{id:"1", name:"A", address:"A"},
{id:"2", name:"A", address:"B"},
{id:"3", name:"A", address:"C"},
{id:"4", name:"B", address:"A"},
{id:"5", name:"B", address:"B"},
{id:"6", name:"C", address:"A"},
{id:"7", name:"C", address:"B"},
{id:"8", name:"C", address:"C"},..
我想要做的是获取那些重复的“名称”的索引,例如
index 0-2 => "A";
index 3-4 => "B";
index 5-7 => "C";
或者甚至计算这些重复项都可以,例如3
对于 A、2
对于 B、3
对于 C。
var counter = 0;
var prev = "";
var next = "";
var prevLink = a[0].name;
for (var i = 0; i < a.length; i++) {
if(i >= ssRow.length){
//do nothing
}else{
next = a[i+1].name;
}
if(prev== next){
counter++;
}else{
counter = 0;
prevLink = a[i].name;
}
//play with counter variable
}
但它没有按预期工作。有没有更好的方法或有效的方法来做到这一点?
let dupes = {};
const array= [
{id:"1", name:"A", address:"A"},
{id:"2", name:"A", address:"B"},
{id:"3", name:"A", address:"C"},
{id:"4", name:"B", address:"A"},
{id:"5", name:"B", address:"B"},
{id:"6", name:"C", address:"A"},
{id:"7", name:"C", address:"B"},
{id:"8", name:"C", address:"C"}];
array.forEach((item,index) => {
dupes[item.name] = dupes[item.name] || [];
dupes[item.name].push(index);
});
for(let name in dupes) console.log(name+'->indexes->'+dupes[name]+'->count->'+dupes[name].length)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句