Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

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>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 18px;
      font-weight: 500;
      color: rebeccapurple;
   }
</style>
</head>
<body>
<h1>Sum of nested object values in Array</h1>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>
Click on the above button to sum the nested object values of json array
</h3>
<script>
   let json = {
      storeData: [
      {
         items: [
         {
            itemID: 12,
            cost: {
               costNum: 100,
            },
         },
         {
            itemID: 22,
            cost: {
               costNum: 250,
            },
         },
         {
            itemID: 19,
            cost: {
               costNum: 350,
            },
         },
      ],
   },
],
};
let resEle = document.querySelector(".result");
document.querySelector(".Btn").addEventListener("click", () => {
   let sum = 0;
   json.storeData.map((ele) => ({
      itemPrice: ele.items.forEach((item) => {
         sum += item.cost.costNum;
      }),
   }));
   resEle.innerHTML += "Total CostNum = " + sum + "<br>";
   });
</script>
</body>
</html>

出力

上記のコードは次の出力を生成します-

JavaScriptを使用した配列内のネストされたオブジェクト値の合計

[ここをクリック]ボタンをクリックすると-

JavaScriptを使用した配列内のネストされたオブジェクト値の合計


  1. JavaScriptのObject.freeze()を使用して、ネストされたオブジェクトを不変にすることは可能ですか?

    Object.freeze() メソッドはオブジェクトを不変にすることができます ただし、ネストされたオブジェクトの場合 、可変性を防ぐことはできません 。 Object.freeze() 不変性のみを提供できます 外側の親オブジェクトに対しては、内側の子(ネストされた)オブジェクトにアクセスできません。 例 次の例では、ネストされたオブジェクトはありません。 Object.freeze() メソッドはフリーズを試みます オブジェクト全体。したがって、オブジェクトをフリーズした後でも、プロパティ「name」に変更はありません。 <html> <body> &nbs

  2. JavaScript array.values()

    JavaScriptのarray.values()は、指定された配列のすべての値を含むイテレータオブジェクトを返します。 以下は、array.values()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />