두 개의 객체 배열을 비교하고 두 객체 간의 차이를 반환 한 다음 원래 데이터 세트에 추가하려고 lodash를 사용하려고합니다. 이유는 새 데이터에는 원본 데이터와 동일한 데이터가 포함됩니다. 예를 들어 에 3 개의 개체가 있고 newData
을 요청하면 동일한 orgData
과 하나 이상의 개체가 포함됩니다.lodash를 사용하여 배열에서 객체 비교 및 제거
var orgData = [{
"id": 1000,
"title": "First item"
}, {
"id": 1001,
"title": "Second item"
}];
var newData = [{
"id": 1000,
"title": "First item"
}, {
"id": 1001,
"title": "Second item"
}, {
"id": 1002,
"title": "Third item"
}];
내 유일한 구분 기호는 id
이며 유일한 것입니다. 나는 다음을 시도했지만, 오류는 'id'undefined '속성을 읽을 수 없다. 별도의 데이터 구조 식별자의
_.filter(orgData, function(o, x) {
return o.id !== newData[x].id;
}).forEach(function(x) {
orgData.push(x);
});
이 질문에 당신을 도울 수 있습니다 http://stackoverflow.com/questions/25764719/update-if-exists-or-add-new-element-to-array-of-objects-elegant-way-in-javascr – benhowdle89
그럴 수도 있지만 그렇지 않습니다. newData의 길이가 orgData보다 크거나 짧을 때 도움이되지 않습니다. 배열에 객체를 추가하거나 배열에서 객체를 제거하는 방법을 어떻게 알 수 있습니까? – hybrid9