- Am Ende sollte nur ein Objekt pro
name
sein. - Wenn es mehr Objekte mit demselben Namen gibt es so machen, dass die
number
Array für jedes Objekt in das für diesen Namen eines Objekt kombiniert bekommen - Die ein Objekt mit dem gleichen Namen keine doppelten Elemente in den
number
haben sollte Array. Die Elemente im Zahlenfeld sollten in derselben Reihenfolge angezeigt werden, in der sie im ursprünglichen Array erscheinen.kombinieren Objekte in einem Array und drücken Sie auf ein Array im Objekt
var arrT = [ {name : "x.com", number :["123-456-789"]}, {name : "x.com", number :["452-123-789"]},{name : "y.com", number :["123-456-000"]}, {name : "x.com", number :["123-456-789"]}, {name : "y.com", number :["123-456-000"]}, {name : "b.com", number :["178-456-000"]} ] output should be:[ {name : "x.com", number : ["123-456-789", "452-123-789"]}, //notice: 123-456-789 didn't appear twice {name : "y.com", number : ["123-456-000"]}, {name : "b.com", number :["178-456-000"]} ]
Ich war in der Lage, um herauszufinden, wie oft ein Objekt mit dem gleichen Namen
var occurrences = nArr.reduce(function(acc, curr,i){
if(typeof acc[curr.name] == "undefined"){
acc[curr.name] = 1;
}else{
acc[curr.name] += 1
}
return acc;
}, {});
console.log(occurrences)
var moreThanOne = [];
for(var key in occurrences){
if(occurrences[key] > 1){
moreThanOne.push(key);
}
}
console.log("moreThanOne", moreThanOne)
aufgetreten ist, aber dann wurde es kompliziert, weil ich nicht wusste, wie die Duplikate zu entfernen und Lassen Sie eins und kombinieren Sie die number
Array
Oh. Ich dachte gerade, ich könnte das mit nur reduzieren. und vergiss den zählenden Teil –