Nehmen wir an, wir diesen Datensatz haben:Javascript, entfernen Eigenschaft aus einer von zwei ähnlichen Objekten in Array
var array = [
{
"name": "a",
"group": "a"
},
{
"name": "a",
"group": "a"
},{
"name": "b",
"group": "b"
},
{
"name": "b",
"group": "b"
},
{
"name": "c"
}
];
und ich möchte durch das Array in einer Schleife, um zu sehen, wenn es zwei Objekte haben die gleiche Gruppenwert , dann entferne die zweite von ihnen.
for(var i = 0 ; i<array.length;i++){
var a = array[i];
for(var j = 0; j< array.length;j++){
if(array[j].group == a.group){
var b = array[j];
// I need code here to remove property "group" from the variable b only
break;
}
}
}
die endgültigen Ergebnisse Ich möchte sind:
var array2 = [
{
"name": "a",
"group": "a"
},
{
"name": "a"
},{
"name": "b",
"group": "b"
},
{
"name": "b"
},{
"name":"c"
}
];
HINWEIS: Ich habe versucht, delete array[j].group
aber es verursacht sowohl group
Eigenschaft von beiden gleich Objekte zu entfernen. Wie kann ich das lösen?
'Ich habe versucht, löschen array [j] .group aber es verursacht beide Gruppeneigenschaft von beiden gleich objects.' zu entfernen, weil irgendwann' a = == b'. Überprüfen Sie, wie Sie eine Schleife erstellen. – Thomas
Ja, ich bemerkte, dass thanx @Thomas –
Und anstatt die Eigenschaft zu löschen, sollten Sie es besser auf 'null' oder' undefined' oder '' '' was auch immer Sie wollen. JS-Engines mögen Objekte mit der gleichen Signatur; * Eigentlich ist es die gleiche versteckte Klasse *, aber das Ändern der Signatur eines Objekts bedeutet auch, dass es seine versteckte Klasse ändert. – Thomas