JavaScript의 객체 배열 합계
Shivam Arora
2023년10월12일
배열은 유사한 유형의 요소를 저장할 수 있으며 여기에는 객체도 포함됩니다.
이 기사에서는 JavaScript에서 객체 배열의 값을 합산하는 더 좋고 효율적인 방법을 배웁니다.
예제에서는 다음 배열의 모든 개체에 대한Amount
를 합산합니다.
fruits = [
{description: 'orange', Amount: 50},
{description: 'orange', Amount: 50},
{description: 'apple', Amount: 75},
{description: 'kiwi', Amount: 35},
{description: 'watermelon', Amount: 25},
];
reduce
함수를 사용하여 JavaScript에서 객체 배열의 값 합계
sum()
이라는 함수를 만들고reduce()
메서드를 사용하여 배열을 단일 값으로 줄일 수 있습니다. 이는 배열의 모든 값의 합계입니다.
이 방법은 단일 패스에서 값을 동시에 필터링하고 매핑하는 데 도움이됩니다.
다음 코드에서이를 구현합니다.
class fruitCollection extends Array {
sum(key) {
return this.reduce((a, b) => a + (b[key] || 0), 0);
}
}
const fruit = new fruitCollection(
...[{description: 'orange', Amount: 50},
{description: 'orange', Amount: 50},
{description: 'apple', Amount: 75},
{description: 'kiwi', Amount: 35},
{description: 'watermelon', Amount: 25},
]);
console.log(fruit.sum('Amount'));
출력:
235
map()
및reduce()
함수를 사용하여 JavaScript에서 객체 배열의 값 합계
map()
함수는 배열에있는 모든 요소의 값을 각각 변경하여 새 배열을 만듭니다. 그런 다음 필터 기능을 사용하여 해당 범주에 속하지 않는 값을 제거합니다. 마지막으로reduce()
함수는 모든 값을 가져 와서 필요한 합계 인 단일 값을 반환합니다.
예를 들면
fruits = [
{description: 'orange', Amount: 50},
{description: 'orange', Amount: 50},
{description: 'apple', Amount: 75},
{description: 'kiwi', Amount: 35},
{description: 'watermelon', Amount: 25},
];
const sumall =
fruits.map(item => item.amount).reduce((prev, curr) => prev + curr, 0);
console.log(sumall);
출력:
235