本文繼續我們對 JavaScript 陣列方法的探索。如果您是本系列的新手,可以在此處找到第 1 部分。我們將研究幾種常見的陣列方法 - Math.max()
、Math.min()
、.reverse()
、.filter()
和 .reduce()
- 並展示如何使用 for
循環來實現相同的結果。 這種比較有望闡明這些方法的功能。
Math.min()
和 Math.max()
這些方法分別找出集合中的最小和最大數字。您可以直接提供數字作為參數,或使用具有展開語法的陣列。
// FIND THE MINIMUM VALUE IN AN ARRAY: // Using a 'for' loop: function findMinValueInArray(array) { let min = array[0]; for (let i = 1; i < array.length; i++) { if (array[i] < min) { min = array[i]; } } return min; } findMinValueInArray([33, -5544, 66, 55]); // returns: -5544 // Using Math.min(): function findMinValueInArray(array) { return Math.min(...array); } findMinValueInArray([33, -5544, 66, 55]); // returns: -5544
Math.min()
顯然更簡潔且不易出錯。 Math.max()
的工作方式類似,但其 for
循環實現略有不同:
// FIND THE MAXIMUM VALUE IN AN ARRAY: // Using a 'for' loop: function findMaxValueInArray(array) { let max = array[0]; for (let i = 1; i < array.length; i++) { let currentNum = array[i]; if (currentNum > max) { max = currentNum; } } return max; } findMaxValueInArray([33, -5544, 66, 55]); // returns: 66 // Using Math.max(): function findMaxValueInArray(array) { return Math.max(...array); } findMaxValueInArray([33, -5544, 66, 55]); // returns: 66
`.reverse()`
此方法反轉數組中元素的順序,從而修改原始數組。
// REVERSE ARRAY ELEMENTS // Using a 'for' loop: function reverseArray(array) { let reversedArray = []; for (let i = array.length - 1; i >= 0; i--) { reversedArray.push(array[i]); } return reversedArray; } reverseArray([1, 2, 3, 4, 5]); // returns: [5, 4, 3, 2, 1] // Using .reverse(): function reverseArray(array) { return array.reverse(); } reverseArray([1, 2, 3, 4, 5]); // returns: [5, 4, 3, 2, 1]
內建方法顯著提高了效率和可讀性。 for
循環方法需要建立一個新數組並手動推送元素,增加了出錯的風險。
`.filter()`
此方法建立一個新數組,僅包含通過提供的測試函數的元素。
讓我們考慮一組銀行帳戶,每個帳戶都有一個 balance
屬性。我們將過濾餘額為零的帳戶。
// Using a 'for' loop: function getClientWithNoMoney(array) { let acctsWithZeroBalance = []; for (let account of array) { if (account.balance === 0) { acctsWithZeroBalance.push(account); } } return acctsWithZeroBalance; } // Using .filter(): function getClientWithNoMoney(array) { return array.filter((account) => account.balance === 0); }
.filter()
提供了更乾淨、更簡潔的解決方案。 for
循環需要手動建立陣列和推入元素,這使得它更容易出錯。
`.reduce()`
.reduce()
將函數累積地應用於陣列元素,產生單一值。
一個簡單的例子是對陣列元素求和,但我們來計算平均值:
// With 'for' loop: function getAverage(array) { let sum = 0; for (let i = 0; i < array.length; i++) { sum += array[i]; } return sum / array.length; } // Using .reduce(): function getAverage(array) { return array.reduce((cv, acc) => { return cv + acc; }) / array.length; ); } getAverage([10, 20, 30, 40]); // returns: 25
雖然這裡節省的程式碼並不顯著,但與 .reduce()
循環方法相比,for
仍然提高了可讀性並減少了出錯的可能性。
這些範例說明了使用內建 JavaScript 陣列方法的優點。 雖然 for
循環提供了基本控制,但這些方法提供了簡潔性、可讀性並減少了潛在的錯誤。 如果您對其他數組方法有疑問,請發表評論。 如果您覺得這篇文章有幫助,請分享! 本系列的第 1 部分可在此處取得。
感謝您的閱讀!
最初於 2023 年 2 月 13 日以簡單英文發佈於 Medium for JavaScript
以上是JavaScript 陣列方法,底層原理,部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何對多個鏈接進行並發GET請求並依次判斷返回結果?在Tampermonkey腳本中,我們經常需要對多個鏈...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器