var arrObj = [{a:1, b:2},{c:3, d:4},{e:5, f:6}];
어떻게 하나의 obj로 병합 할 수 있습니까?동일한 배열 내의 여러 객체를 하나의 객체로 병합
//mergedObj = {a:1, b:2, c:3, d:4, e:5, f:6}
var arrObj = [{a:1, b:2},{c:3, d:4},{e:5, f:6}];
어떻게 하나의 obj로 병합 할 수 있습니까?동일한 배열 내의 여러 객체를 하나의 객체로 병합
//mergedObj = {a:1, b:2, c:3, d:4, e:5, f:6}
당신이
var resultObject = arrObj.reduce(function(result, currentObject) {
for(var key in currentObject) {
if (currentObject.hasOwnProperty(key)) {
result[key] = currentObject[key];
}
}
return result;
}, {});
console.log(resultObject);
# { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }
이 솔루션처럼 Array.prototype.reduce
을 사용할 수 있습니다, 단순히 마지막 결과로 우리에게 반환되는 result
의 모든 개체에서 모든 키와 값을 수집합니다.
이 검사
if (currentObject.hasOwnProperty(key)) {
우리가 결과의 모든 상속 열거 속성을 포함하지 않습니다 있는지 확인하는 것이 필요하다.
당신은 우아한 솔루션을 reduce
을 사용할 수
arrObj.reduce(function(acc, x) {
for (var key in x) acc[key] = x[key];
return acc;
}, {});
이 MDN docs for reduce
for more information를 참조하십시오.