Ich habe ein Array Ich möchte gegen ein bestimmtes Schlüsselwertpaar suchen.Durch Array gehen und doppelte Objekte in ein separates Array verschieben
var myObj = [
{"name" : "Kanye", "song" : "Jesus Walks"},
{"name" : "Axel Ross", "song" : "Thunder Struck"},
{"name" : "Kate Perry", "song" : "Superbass"},
{"name" : "Kanye", "song" : "Fade"},
{"name" : "Kanye", "song" : "Old Kanye"},
];
Was ich bekommen möchte, ist zwei Arrays, die so aussehen.
var cleanObj = [
{"name" : "Kanye", "song" : "Jesus Walks"},
{"name" : "Axel Ross", "song" : "Thunder Struck"},
{"name" : "Kate Perry", "song" : "Superbass"},
];
var duplicateObj = [
{"name" : "Kanye", "song" : "Jesus Walks"},
{"name" : "Kanye", "song" : "Fade"},
{"name" : "Kanye", "song" : "Old Kanye"},
];
Momentan habe ich etwas, das so aussieht.
var duplicateObj = [];
var cleanObj = {};
$.map(myObj, function (obj) {
var checkDuplicate = myObj.some(function (elem) {
return elem.name == obj.name;
});
if (checkDuplicate) {
var tempObj = {
name: obj.name,
song: obj.song
}
duplicateObj.push(tempObj);
} else {
var tempObj = {
name: obj.name,
song: obj.song
}
cleanObj.push(tempObj);
}
});
Das Problem dabei ist, dass es die erste Instanz des doppelten Objekts nicht verschieben wird. Nur die, nach denen es sich vergleicht.
Irgendeine Idee, wie ich die erste Instanz eines duplizierten Artikels auch verschieben kann?
Vielen Dank im Voraus.
tun teilen Duplikate den gleichen Namen? –
@NinaScholz ja sie teilen den gleichen Namen, nur Name nicht Lied – BaconJuice
Aber in Ihren gewünschten Ergebnis-Arrays, 'Kanye' Eintrag ist auch dort in der cleanObj, aber Sie sagen, Sie wollen nicht das erste Vorkommen von doppelten Elementen enthalten. –