처음에는 간단하게 해결할 수 있지만 어색해하는 바보 같은 문제가 있습니다. ID와 값 :자바 스크립트에서 병합 병합
[
{id: 2, value: 10},
{id: 4, value: 3},
{id: 2, value: 2},
{id: 1, value: 15}
]
내가 유사한 ID를 가진 사람의 값을 요약하는 알고리즘을 작성하려는
가 나는 두 가지 속성을 가진 객체의 배열, 각이있다. 내 최종 결과는 병합 된 개체로 새로운 배열이 : 나는 다음을 시도했습니다
[
{id: 2, value: 12},
{id: 4, value: 3},
{id: 1, value: 15}
]
,하지만 작동하지 않습니다
var arr = [];
arr.push({id: 2, visit:10});
arr.push({id: 4, visit:3});
arr.push({id: 2, visit:2});
arr.push({id: 1, visit:15});
// Deep copy
var copy = jQuery.extend(true, [], arr);
var masterArr = [];
for (var i = 0; i < arr.length; i++) {
var objArr = [];
objArr.push(arr[i]);
for (var j = copy.length-1; j > -1; j--) {
if (arr[i].id === copy[j].id) {
var q = copy.splice(j,1);
}
}
masterArr.push(objArr);
}
내 계획은 우선 수집했다 별도의 배열 (objArr)에있는 유사한 객체를 합친 다음 최종 배열 (masterArr)에 저장합니다. jquerys를 사용하여 깊은 복사본 (참조가 아닌)을 만들고 역 반복과 스플 라이스를 사용하여 이미 "중복"으로 발견 된 개체를 제거합니다.
이것은 작동하지 않습니다! 그리고 그것은 내 문제를 해결하는 데 매우 효율적인 방법으로 보이지 않습니다. 어떻게하면됩니까? 성과는 최우선 순위가 아니라 오히려 "가지고있는 것이 좋다"!
감사합니다.
올레 프랑크 (Olefrank), 우리 대답이 도움이 되었습니까? – Cerbrus