首頁  >  文章  >  web前端  >  如何在 JavaScript 中對累加器和物件的每個鍵套用函數?

如何在 JavaScript 中對累加器和物件的每個鍵套用函數?

王林
王林轉載
2023-08-25 17:33:061380瀏覽

如何在 JavaScript 中对累加器和对象的每个键应用函数?

在JavaScript中,我們可以使用reduce()方法對累加器和物件的每個鍵(從左到右)套用函數。

reduce()方法在給定數組並接受回調函數作為其第一個參數。更多詳細資訊請參閱數組reduce()。我們來看看這個方法的語法。

語法

array array.reduce(callback[, initialValue]);

參數

  • #回呼 - 對陣列中每個值執行的函數。

  • initialValue - 用作回呼第一次呼叫的第一個參數的物件。

回呼 函數傳遞四個參數

  • #第一個參數是累加器,它是上一個回呼函數呼叫的結果,或是初始值,如果這是第一次呼叫。

  • 第二個參數是目前正在處理的鍵。

  • 第三個參數是目前正在處理的鍵。正在處理的值。

  • 第四個參數是目前正在處理的索引。

然後reduce()方法傳回累加器。

應用reduce()方法

讓我們來看一個簡單的範例來了解reduce()方法是如何運作的。

我們有一個物件數組,每個物件都有一個名稱和一個值屬性。我們使用reduce()方法對值進行求和。

我們可以透過傳入一個回呼函數來實現這一點,該函數接收累加器(上一個回呼函數呼叫的結果)和目前值處理。然後回調函數返回累加器加上目前值。

範例

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
      let sum = arr.reduce((acc, cur) => acc + cur.value, 0);
      document.getElementById("result").innerHTML = sum;
   </script>
</body>
</html>

在上面的程式中,我們有一個物件數組,每個物件都有一個名稱和一個值屬性。我們使用reduce()方法對值進行求和。

我們傳入一個回呼函數((acc, cur) => acc cur.value),它接受正在處理的累加器acc(上一個回調函數呼叫的結果)和當前值cur。然後,回調函數會傳回累加器加上目前值。

然後,reduce() 方法傳回累加器,也就是所有值的總和。

使用reduce()的優點

使用reduce()的一個優點是它可以讓你的程式碼更具可讀性。

例如,如果我們想要對值求和在上面的陣列中,我們也可以使用 for 迴圈。

範例

<html>
<head>
   <title>Using for loop</title>
</head>
<body>
   <h2> Using for loop to sum the values of objects in an array</h2>
   <div id="result"></div>
   <script>
      let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
      let sum = 0;
      for (let i = 0; i < arr.length; i++) {
         sum += arr[i].value;
      }
      document.getElementById("result").innerHTML = sum
   </script>
</body>
</html>

上面的reduce()方法和for迴圈都達到了相同的結果。然而,reduce()方法更簡潔,更容易閱讀。

使用reduce()的另一個優點是它可以用來並行處理資料.

例如,如果我們有一個物件數組,每個物件都有一個名稱和一個值屬性,我們想要並行處理每個對象,我們可以使用map () 方法。

let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
let results = arr.map(obj => { // do something with obj });

但是,如果我們想按順序處理數據,我們可以使用reduce()方法。

let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
let result = arr.reduce((acc, obj) => { // do something with obj and return the result }, initialValue);

結論

在本教學中,我們了解如何使用reduce()方法對累加器和物件的每個鍵套用函數。我們也看到了使用reduce() 相對於其他方法的一些優勢。

以上是如何在 JavaScript 中對累加器和物件的每個鍵套用函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除