オブジェクトの配列内の同様の数値を合計する-JavaScript
このようなオブジェクトの配列があるとします-
const arr = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 151},
{"firstName":"Anna", "value": 200},
{"firstName":"Peter", "value": 22},
{"firstName":"Anna","value": 60}
]; このような配列を1つ取り込んで、firstNameプロパティに同様の値を持つすべてのオブジェクトのvalueプロパティを組み合わせるJavaScript関数を作成する必要があります。
したがって、上記の配列の場合、出力は次のようになります-
const output = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 173},
{"firstName":"Anna", "value": 260}
]; オブジェクトごとに、類似したオブジェクトを再帰的に検索します
(この質問のコンテキストの同様のオブジェクトは、同様のfirstName値を持つオブジェクトです。)
次に、valueプロパティを一方のオブジェクトに追加し、もう一方のオブジェクトを配列から削除します。これは、配列の最後に到達するまで実行されます。到達すると、アレイを目的のアレイに縮小します。
例
以下はコードです-
const arr = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 151},
{"firstName":"Anna", "value": 200},
{"firstName":"Peter", "value": 22},
{"firstName":"Anna","value": 60}
];
const sumSimilar = arr => {
const res = [];
for(let i = 0; i < arr.length; i++){
const ind = res.findIndex(el => el.firstName === arr[i].firstName);
if(ind === -1){
res.push(arr[i]);
}else{
res[ind].value += arr[i].value;
};
};
return res;
};
console.log(sumSimilar(arr)); 出力
これにより、コンソールに次の出力が生成されます-
[
{ firstName: 'John', value: 89 },
{ firstName: 'Peter', value: 173 },
{ firstName: 'Anna', value: 260 }
] -
JavaScriptを使用した配列内のネストされたオブジェクト値の合計
以下は、JavaScriptを使用して配列内のネストされたオブジェクト値を合計するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <st
-
2つのオブジェクトを比較しながら配列のネストされた値をグループ化-JavaScript
次のJSONオブジェクトがあるとします- const input = { "before": { "device": [ { "id": "1234", "price": "10",