首頁 > web前端 > js教程 > 主體

如何在 JavaScript 中使用 Array.prototype.reduce() 方法?

PHPz
發布: 2023-09-11 22:53:02
轉載
1456 人瀏覽過

如何在 JavaScript 中使用 Array.prototype.reduce() 方法?

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() 方法在對所有陣列元素執行某些任務後傳回最終結果值。

範例 1

在下面的範例中,我們建立了數字數組並用一些數值對其進行了初始化。之後,我們使用 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>
登入後複製

範例 2

在下面的範例中,我們使用 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>
登入後複製

範例 3

在下面的範例中,我們正在尋找元素索引值的總和。使用者可以在回調函數中看到我們如何使用陣列索引。

<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>
登入後複製

範例 4

在此範例中,我們建立了一個物件陣列。該陣列的每個物件都包含 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中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!