這篇文章帶給大家的內容是關於Javascript陣列中迭代方法的詳細分析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
我們曾介紹了一些陣列的用法。例如:陣列如何表現的和「堆疊」一樣,用什麼方法表現的和「佇列」一樣等等一些方法,因為Javascript 中的陣列方法眾多,所以我們沒有在一篇文章中介紹過多的東西,接下來我們就來了解陣列的其他功能吧
正式開始!
陣列的迭代方法
陣列的迭代方法是我們在開發專案中使用頻率非常高、非常重要、非常高效,不僅如此這些方法還能使我們的程式碼會非常簡潔,可以這麼說,如果你在開發中不常使用這些方法的話,簡直就是太可怕了。
例如我們如何批量的添加DOM 節點
let containerUl = document.getElementById('container'); let li; let peoples = [{name: 'Liu', age: 14}, {name: 'Li', age: 13}, {name: 'Cao', age: 11}]; //for 循环 for (let i = 0; i { li = document.createElement('li'); li.innerHTML = people.name + ":" + people.age; containerUl.appendChild(li); })
上面只是舉了一個簡單的例子,其實我們在日常的開發過程中遠不止此,而且要比這個複雜的很多很多,所以如何有效率的進行工作的開發是非常有必須的。下面就從我們比較常用的一個一個的來說起。
forEach()
該方法對陣列的每一個元素執行給定的函數,傳回 undefined(或說無傳回值)。
此方法接受兩個參數,一個是元素每一項執行的回呼函數,一個是可選參數,回呼函數執行時 this 的值。
傳入的回呼函數會接受三個參數分別是:陣列中的元素(item),元素的索引(index,可選),陣列本身(array,可選)。
//语法 array.forEach(callback[, this]) array.forEach(callback(item, index, array){ //函数体,执行的操作 }); //看个例子,本质上与 for 循环一样 let items = ['a', 'b', 'c']; items.forEach(function (item) { console.log(item); }); for (let i = 0; i <p>最後我們來看看 forEach() 方法的相容性,直接上圖。 </p>
Chrome | Edge | #Firefox | Internet Explorer | Opera | |
---|---|---|---|---|---|
Yes
Yes
1.59Yesmap() | 該方法對陣列的每一個元素執行給定的函數,傳回一個新的數組,新數組的結果是原始數組中元素執行方法後的結果。 | 此方法接受兩個參數,一個是元素每一項執行的回呼函數,一個是可選參數,回呼函數執行時 this 的值。 | 傳入的回呼函數會接受三個參數分別是:陣列中的元素(item),元素的索引(index,可選),陣列本身(array,可選)。 | //语法 var newArrs = array.map(callback[, this]) var newArrs = array.map(callback(item, index, array){ //return 执行后的结果 }); //例子 let numbers = [1, 2, 3]; let newNumbers = numbers.map(x => x * x); console.log(newNumbers); //[1, 4, 9] | 在我們日常開發工作中,會遇到非常多的資料格式化的過程,利用這些方法可以大大方便我們的處理。 |
---|---|---|---|---|---|
|
例如格式化需要的資料 | let peoples = ['Liu', 'Cao', 'Pan']; let peoplesInfo = peoples.map(people => { return { name: people, age: Math.floor(Math.random()*20) } }); console.log(peoplesInfo); // [{name: Liu, age: XX}, // {name: Cao, age: XX}, // {name: Pan, age: XX}] | 當然我們在實際工作中的資料複雜度遠不止此,但是我們可以明顯感覺到這些方法處理資料的優勢。 最後我們來看看 map() 方法的兼容性,直接上圖。 |
Safari | Yes |
//语法 var newArrs = array.filter(callback[, this]) var newArrs = array.filter(callback(item, index, array){ //return 满足条件的项 }); //例子 let numbers = [1, 2, 3, 4, 5]; let newNumbers = numbers.filter(x => x > 2); console.log(newNumbers); //[3, 4, 5]###「filter」方法在實際工作上也同樣有著很多的作用,例如:我們找出一群人中哪些是小朋友。 ###
var peoples = [{name: 'liu', age: 9}, {name: 'jiang', age: 18}, {name: 'cao', age: 20}, {name: 'pan', age: 3}]; var childrens = peoples.filter(people => people.age ###最後我們來看看 filter() 方法的相容性,直接上圖。 ###############Chrome######Edge#######Firefox######Internet Explorer######Opera######################################################################################### #Safari##################Yes######Yes######1.5######9######Yes# #####Yes############<h4 id="every">every</h4><p>该方法是对数组的每一个元素执行给定的函数,<br>如果数组中的每个元素都满足给定的条件则返回 true,否则返回 false。</p><p>该方法接受两个参数,一个是元素每一项执行的回调函数,一个是可选参数,回调函数运行时 this 的值。</p><p>传入的回调函数会接受三个参数分别是:数组中的元素(item),元素的索引(index,可选),数组本身(array,可选)。</p><pre class="brush:php;toolbar:false">//语法 var newArrs = array.every(callback[, this]) var newArrs = array.every(callback(item, index, array){ //执行方法 }); //例子 var number = [2, 3, 4, 5, 6]; var result1 = number.every(item => item > 4); console.log(result1); //false var result2 = number.every(item => item > 1); console.log(result2); //true
我们在来看看 every() 方法的兼容性,直接上图。
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Yes | Yes | 1.5 | 9 | Yes | Yes |
some
该方法是对数组的每一个元素执行给定的函数,
如果数组中的有一个元素满足条件则返回 true,如果全部不满足条件则返回 false。
该方法接受两个参数,一个是元素每一项执行的回调函数,一个是可选参数,回调函数运行时 this 的值。
传入的回调函数会接受三个参数分别是:数组中的元素(item),元素的索引(index,可选),数组本身(array,可选)。
//语法 var newArrs = array.some(callback[, this]) var newArrs = array.some(callback(item, index, array){ //执行方法 }); //例子 var number = [2, 3, 4, 5, 6]; var result1 = number.some(item => item item > 5); console.log(result2); //true
我们在来看看 some() 方法的兼容性,直接上图。
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Yes | Yes | 1.5 | 9 | Yes | Yes |
相关推荐:
javascript中Array数组的迭代方法实例分析_javascript技巧
以上是Javascript數組中迭代方法的詳細分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。