在JavaScript中,我們可以使用reduce()方法對累加器和物件的每個鍵(從左到右)套用函數。
reduce()方法在給定數組並接受回調函數作為其第一個參數。更多詳細資訊請參閱數組reduce()。我們來看看這個方法的語法。
array array.reduce(callback[, initialValue]);
#回呼 - 對陣列中每個值執行的函數。
initialValue - 用作回呼第一次呼叫的第一個參數的物件。
回呼< /strong> 函數傳遞四個參數
#第一個參數是累加器,它是上一個回呼函數呼叫的結果,或是初始值,如果這是第一次呼叫。
第二個參數是目前正在處理的鍵。
第三個參數是目前正在處理的鍵。正在處理的值。
第四個參數是目前正在處理的索引。
然後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() 方法傳回累加器,也就是所有值的總和。
< h2>使用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中文網其他相關文章!