array.reduce() 方法用於透過對每個元素執行一些任務來將整個陣列縮減為單一值。例如,當我們想要得到數組所有元素的總和時,我們需要將整個數組簡化為單一值,而該值就是數組所有元素的最終總和。
array.reduce() 方法追蹤前一個元素的結果值。之後,它使用我們從前一個元素獲得的結果值對下一個元素執行任務。陣列的第一個元素考慮作為結果值的參數傳遞的初始值。在本教程中,我們將學習使用 JavaScript 的 Array.prototype.reduce() 方法。
使用者可以依照下列語法使用 array.reduce() 方法。
array.reduce((previousResult, element, index, array) => { // perform a task }, startingValue);
我們在上面的語法中將箭頭函數作為第一個參數值傳遞。箭頭函數用作內聯回調函數。
array.reduce(callback, startingValue);
在上面的語法中,回呼是一個回呼函數。
previousResult - 這是我們對前一個陣列元素執行一些運算得到的結果值。
element - 它是陣列中索引位置的元素。
Index - 它是陣列元素的目前索引。
Array - 它本身就是一個在回呼函數中使用的陣列。
startingValue - 這是初始化 previousResult 變數的初始值。
callback - 這是一個呼叫陣列中每個元素的函數。
array.reduce() 方法在對所有陣列元素執行某些任務後傳回最終結果值。
在下面的範例中,我們建立了數字數組並用一些數值對其進行了初始化。之後,我們使用 array.reduce() 方法來求所有數字的乘積。
此外,我們也使用內聯回呼函數作為reduce()方法的第一個參數。在回呼函數中,我們將 previousResult 變數的值與元素相乘並傳回它。
<html> <body> <h2>Using the <i>array.reduce()</i> method to find a factorial of a number in JavaScript.</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let factorial = numbers.reduce((previousResult, element) => { return previousResult = element * previousResult; }, 1) output.innerHTML += "The factorial of 10 is " + factorial; </script> </body> </html>
在下面的範例中,我們使用 array.reduce() 方法將所有數組字串連接到一個字串中。我們使用“ ”運算符將當前字串元素與前一個結果合併到回調函數中。
<html> <body> <h2>Using the <i>array.reduce()</i> method to merge all strings of the array in JavaScript.</h2> <div id="output"> </div> <script> let output = document.getElementById('output'); let strings = ["Welcome", "To", "the", "TutorialsPoint", "blogs", "!"]; function callback(previousResult, stringElement) { return previousResult + " " + stringElement; } let message = strings.reduce(callback, ""); output.innerHTML += "The Message created from the array of the string values is " + message; </script> </body> </html>
在下面的範例中,我們正在尋找元素索引值的總和。使用者可以在回調函數中看到我們如何使用陣列索引。
<html> <body> <h2>Using the <i>array.reduce()</i> method.</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let numersArray = [20, 30, 40, 50, 60, 70, 80, 90, 100]; let finalValue = numersArray.reduce((previousResult, element, index, array) => { return previousResult + element - index; }, 0); output.innerHTML += "The resultant value after performing operations on array element is " + finalValue; </script> </body> </html>
在此範例中,我們建立了一個物件陣列。該陣列的每個物件都包含 emp_id、emp_name 和工資。我們使用了reduce()方法來取得所有員工的總薪資。在reduce()方法的回調函數中,我們存取每個物件並將其salary屬性的值加入total變數中。最後傳回所有員工的總薪資。
<html> <body> <h2>Using the <i> array.reduce() </i> method.</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let arrayOfObjects = [ { emp_id: "10", emp_name: "Shubham", salary: 10000 }, { emp_id: "20", emp_name: "Akshay", salary: 20000 }, { emp_id: "dfd0", emp_name: "John", salary: 20000 }, { emp_id: "10", emp_name: "Mukund", salary: 50000 }, { emp_id: "10", emp_name: "salman", salary: 5000 } ] let totalSalary = arrayOfObjects.reduce((total, object, index, array) => { return total + object.salary; }, 0); output.innerHTML += "The total salary of all employees is " + totalSalary; </script> </body> </html>
使用者學會了使用 Array.prototype.reduce() 方法將整個陣列轉換為單一陣列值。我們已經透過不同的例子看到了reduce()方法的用例。另外,我們可以使用 array.reduce() 方法從陣列中找出最小值和最大值。
當我們以空數組作為引用來呼叫 array.reduce() 方法時,它會傳回一個錯誤。
以上是如何在 JavaScript 中使用 Array.prototype.reduce() 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!