オブジェクトの配列内の同様の数値を合計する-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",