배열이 있습니다. 특정 키 값 쌍을 찾고 싶습니다.배열을 통과하여 중복 된 항목을 별도의 배열로 이동
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"},
];
내가 원하는 것은이 모양의 두 개의 배열입니다.
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"},
];
현재이 모양이 있습니다.
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);
}
});
문제는 중복 된 개체의 첫 번째 인스턴스를 이동하지 않는다는 것입니다. 비교 한 사람 만.
중복 된 항목의 첫 번째 인스턴스를 어떻게 이동할 수 있습니까?
미리 감사드립니다.
할 중복은 같은 이름을 공유? –
@NinaScholz 네 그들은 같은 이름을 공유하고 있습니다. 노래 이름이 아닙니다. – BaconJuice
그러나 원하는 결과 배열에서'Kanye' 항목은 cleanObj에도 있지만, 중복 항목의 첫 번째 항목은 포함하고 싶지 않다고 말합니다. –