摘要:中的數(shù)組遍歷是項(xiàng)目中經(jīng)常用到的,在這里將幾種方法做個(gè)對(duì)比。第一個(gè)參數(shù)為數(shù)組元素必選,第二個(gè)參數(shù)為數(shù)組元素索引值可選,第三個(gè)參數(shù)為數(shù)組本身可選循環(huán)中傳入要執(zhí)行的回調(diào)函數(shù),函數(shù)有三個(gè)參數(shù)。用于遍歷數(shù)組元素使用,,,用于循環(huán)對(duì)象屬性使用
js中的數(shù)組遍歷是項(xiàng)目中經(jīng)常用到的,在這里將幾種方法做個(gè)對(duì)比。
for循環(huán):使用評(píng)率最高,也是最基本的一種遍歷方式。let arr = ["a","b","c","d","e"]; for (let i = 0, len = arr.length; i < len; i++) { console.log(i); // 0 1 2 3 4 console.log(arr[i]); //a b c d e }forEach()循環(huán):forEach中傳入要執(zhí)行的回調(diào)函數(shù),函數(shù)有三個(gè)參數(shù)。第一個(gè)參數(shù)為數(shù)組元素(必選),第二個(gè)參數(shù)為數(shù)組元素索引值(可選),第三個(gè)參數(shù)為數(shù)組本身(可選)
let arr = ["a","b","c","d","e"]; arr.forEach((item,index,arr)=> { console.log(item); // a b c d e console.log(index); // 0 1 2 3 4 console.log(arr); // ["a","b","c","d","e"] })map循環(huán): map()中傳入要執(zhí)行的回調(diào)函數(shù),函數(shù)有三個(gè)參數(shù)。第一個(gè)參數(shù)為數(shù)組元素(必選),第二個(gè)參數(shù)為數(shù)組元素索引值(可選),第三個(gè)參數(shù)為數(shù)組本身(可選)
var arr = [ {name:"a",age:"18"}, {name:"b",age:"19"}, {name:"c",age:"20"} ]; arr.map(function(item,index) { if(item.name == "b") { console.log(index) // 1 } })for...in循環(huán):for...in循環(huán)可用于循環(huán)對(duì)象和數(shù)組,推薦用于循環(huán)對(duì)象,可以用來遍歷json
let obj = { name: "王大錘", age: "18", weight: "70kg" } for(var key in obj) { console.log(key); // name age weight console.log(obj[key]); // 王大錘 18 70kg } let arr = ["a","b","c","d","e"]; for(var key in arr) { console.log(key); // 0 1 2 3 4 返回?cái)?shù)組索引 console.log(arr[key]) // a b c d e }for...of循環(huán):可循環(huán)數(shù)組和對(duì)象,推薦用于遍歷數(shù)組。
for...of提供了三個(gè)新方法:
key()是對(duì)鍵名的遍歷;
value()是對(duì)鍵值的遍歷;
entries()是對(duì)鍵值對(duì)的遍歷;
let arr = ["科大訊飛", "政法BG", "前端開發(fā)"]; for (let item of arr) { console.log(item); // 科大訊飛 政法BG 前端開發(fā) } // 輸出數(shù)組索引 for (let item of arr.keys()) { console.log(item); // 0 1 2 } // 輸出內(nèi)容和索引 for (let [item, val] of arr.entries()) { console.log(item + ":" + val); // 0:科大訊飛 1:政法BG 2:前端開發(fā) }總結(jié):forEach、map、filter、reduce、every、some 都會(huì)有 break 和 continue 不生效的問題,因?yàn)槭窃趂unction中,但function解決了閉包陷阱的問題;要使用 break、continue 可以使用 for、for...in、for...of、while。 用于遍歷數(shù)組元素使用:for(),forEach(),map(),for...of 用于循環(huán)對(duì)象屬性使用:for...in
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/98332.html
摘要:數(shù)組語(yǔ)法功能遍歷數(shù)組,返回回調(diào)返回值組成的新數(shù)組,不改變?cè)瓟?shù)組,不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)語(yǔ)法功能無法,可以用中來停止,不改變?cè)瓟?shù)組語(yǔ)法功能過濾,返回過濾后的數(shù)組,不改變?cè)瓟?shù)組,不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)語(yǔ)法功能有一項(xiàng)返回,則整體為,不改變?cè)瓟?shù)組語(yǔ)法 數(shù)組 (array) ES5 * map 語(yǔ)法:[].map(function(item, index, array) {return xxx})功...
摘要:注方法可以返回某個(gè)指定字符串在字符串中首次出現(xiàn)的位置比如首次出現(xiàn)的位置是數(shù)組中的第一個(gè),即下標(biāo)為遍歷數(shù)組使用標(biāo)識(shí)符去重聲明一個(gè)變量標(biāo)識(shí)排序后遍歷過濾數(shù)組思路先給數(shù)組排序,這樣相同的項(xiàng)總是相鄰。 假設(shè)我們有數(shù)組arr,并且聲明新數(shù)組hash用來存放去重后的元素: var arr = [23,44,5,2,23,5,1,7,8,7]; //包含重復(fù)元素 var hash= [];...
摘要:前一個(gè)值,當(dāng)前值,索引,數(shù)組對(duì)象產(chǎn)生新數(shù)組的迭代器方法類似,對(duì)數(shù)組的每個(gè)元素使用某個(gè)函數(shù),并返回新數(shù)組和相似,傳入一個(gè)返回值為布爾類型的函數(shù)。 1. 前言 數(shù)組真的是每天用了,但是有很多方法都是記不住,總是要百度查,很煩,所以才寫了個(gè)數(shù)組使用總結(jié),有什么不對(duì)的希望大家指出來。 2. 思路 先看看這些問題都記得很清楚么? 創(chuàng)建數(shù)組,怎么創(chuàng)建數(shù)組的 數(shù)組的構(gòu)造方法Array有哪些方法?E...
摘要:如圖遍歷數(shù)組遍歷數(shù)組元素并以某種方式處理每個(gè)元素是一個(gè)常見的操作。如圖不過,里的功能比較強(qiáng)大,可以遍歷而且返回值是的則被省略掉總結(jié)遍歷對(duì)象,遍歷出來的是鍵名,而不是鍵值,參數(shù)必須是對(duì)象。 可能是由于職業(yè)的關(guān)系,下班之后完全不想Open PC,但很多知識(shí)點(diǎn)有必要自己做個(gè)小小總結(jié)。本人之前對(duì)原生Array和Object完全沒概念。 遍歷對(duì)象的方法: Object.keys(Object)...
閱讀 3469·2021-09-22 15:02
閱讀 3506·2021-09-02 15:21
閱讀 2132·2019-08-30 15:55
閱讀 2779·2019-08-30 15:44
閱讀 776·2019-08-29 16:56
閱讀 2414·2019-08-23 18:22
閱讀 3342·2019-08-23 12:20
閱讀 3091·2019-08-23 11:28