摘要:方法方法還可以添加新屬性方法和兩者的主要區(qū)別在于他們的迭代方式推薦在循環(huán)對象屬性的時(shí)候使用在遍歷數(shù)組的時(shí)候使用循環(huán)出來的是循環(huán)出來的是是標(biāo)準(zhǔn),是標(biāo)準(zhǔn),兼容性可能存在些問題,請注意使用不能遍歷普通的對象,需要和搭配使用方法方法
方法1 -- for
var arr = [1,2,3,4,5,6,7,8,9] for(var i = 0; i方法2 -- for...in var arr = [1,2,3,4,5,6,7,8,9] for(var i in arr){ console.log(arr[i]) conosle.loh(arr[i] + "/" + i) // 還可以添加新屬性 }方法3 -- for...ofvar arr = [1,2,3,4,5,6,7,8,9] for(var i of arr){ console.log(i) }for...in 和 for...of 兩者的主要區(qū)別在于他們的迭代方式
推薦
在循環(huán)對象屬性的時(shí)候使用for in
在遍歷數(shù)組的時(shí)候使用for offor...in 循環(huán)出來的是key, for...of循環(huán)出來的是value
for...in 是ES5 標(biāo)準(zhǔn),for...of 是ES6標(biāo)準(zhǔn),兼容性可能存在些問題,請注意使用
for...of 不能遍歷普通的對象,需要和Object.keys() 搭配使用
方法4 -- forEach/* forEach方法:被傳遞給forEach的函數(shù)會在數(shù)組的每個(gè)元素上執(zhí)行一次,元素作為參數(shù)傳遞給該函數(shù) */ var arr = [1,2,3,4,5,6,7,8,9] arr.forEach(function(element,index){ console.log(element) console.log(element + "/" + index) })【!注意!】未賦值的值是不會在forEach循環(huán)迭代的,但是手動賦值為undefined的元素是會被列出的
var arr = [1,,3,undefined,5,6,7,8,9] arr.forEach(function(element,index){ console.log(element + "/" + index) })方法5 -- mapmap 遍歷數(shù)組,并通過callback對數(shù)組元素進(jìn)行操作,并將所有操作結(jié)果放入數(shù)組中并返回該數(shù)組
var arr = [1,2,3,4,5,6,7,8,9] var arr2 = arr.map(function(item){ console.log(item ) })方法6 -- filterfilter()返回一個(gè)包含所有在回調(diào)函數(shù)上返回為true的元素新數(shù)組,回調(diào)函數(shù)在此擔(dān)任的是過濾器的角色,當(dāng)元素符和條件,過濾器就返回true,而filter則會返回所有符合過濾條件的元素
var arr = ["aaa","bbb","ccc",1,2,3] var arr2 = arr.filter(function(item){ if(typeof item == "number"){ return item; } }) console.log(arr2);方法7 -- everyevery() 當(dāng)數(shù)組中的每一個(gè)元素在callback上被返回true時(shí)就返回true(注意:要求每一個(gè)單元項(xiàng)都返回true時(shí)才為true)
var arr = ["aaa","bbb","ccc",1,2,3] var bol = arr.every(function(element){ if(typeof element == "string"){ return element; } }) console.log(bol); //falseevery()與filter()的區(qū)別是:后者會返回所有符合過濾條件的元素;前者會判斷是不是數(shù)組中的所有元素都符合條件,并且返回的是布爾值
方法8 -- somesome()只要數(shù)組中有一項(xiàng)在callback上就返回true
var arr = ["aaa","bbb","ccc",1,2,3] var arr = ["first","second","third" ,"fourth",3,5,8]; var bol = arr.some(function(element){ if(typeof element == "string"){ return element; } }) console.log(bol); //trueevery()與some()的區(qū)別是:前者要求所有元素都符合條件才返回true,后者要求只要有符合條件的就返回true
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105753.html
摘要:數(shù)組原理遍歷原理揭秘?cái)?shù)組原理遍歷原理揭秘可見,數(shù)組其實(shí)已經(jīng)改變了,但是遍歷出來的并沒有增加的哪一項(xiàng)。此時(shí),我們也可以輸出一下當(dāng)前指針位置數(shù)組原理遍歷原理揭秘?cái)?shù)組原理遍歷原理揭秘?cái)?shù)組指針停留在了位置上。 php中的中的數(shù)組跟js里面數(shù)組是不大一樣的。php中數(shù)組的下標(biāo)可以整數(shù)也可以是字符串,而且數(shù)組中元素的順序不是由下標(biāo)決定的,而是由添加元素的順序。數(shù)組基礎(chǔ) $arr1 = array(...
摘要:中可以實(shí)現(xiàn)遍歷的數(shù)據(jù)類型主要是對象,其中包括普通對象與數(shù)組。遍歷器是一種接口,為各種不同的數(shù)據(jù)結(jié)構(gòu)提供統(tǒng)一的訪問機(jī)制。實(shí)例五遍歷器對象實(shí)例五是的遍歷過程,通過手動調(diào)用其對象的方法實(shí)現(xiàn)信息獲取。為每個(gè)數(shù)組元素執(zhí)行函數(shù)。 前言 ??將依據(jù)自身痛點(diǎn)學(xué)習(xí),計(jì)劃對原生JavaScript寫一個(gè)系統(tǒng),本文為第一篇,感興趣的同學(xué)可以關(guān)注個(gè)人公眾號:ZeroToOneMe,或者github博客,將持續(xù)...
摘要:循環(huán)方法方法不改變原數(shù)組方法會給原數(shù)組中的每個(gè)元素都按順序調(diào)用一次函數(shù)。篩選出過濾出數(shù)組中符合條件的項(xiàng)組成新數(shù)組代碼方法方法為數(shù)組中的每個(gè)元素執(zhí)行一次函數(shù),直到它找到一個(gè)使返回表示可轉(zhuǎn)換為布爾值的值的元素。 showImg(https://segmentfault.com/img/bV2QTD?w=1600&h=500); 前言 JavaScript 發(fā)展至今已經(jīng)發(fā)展出多種數(shù)組的循環(huán)遍...
摘要:判斷是深拷貝對象還是數(shù)組如果要拷貝的對象的屬性依然是個(gè)復(fù)合類型,遞歸運(yùn)用遞歸,當(dāng)要拷貝的對象或者數(shù)組的屬性依然是個(gè)對象或者數(shù)組時(shí),遞歸調(diào)用。遍歷對象聊完了深拷貝和淺拷貝,接下來說一下遍歷。 在js這門語言中,數(shù)據(jù)存放在堆中,而數(shù)據(jù)的引用的存放在棧中。 淺拷貝 我們說的淺拷貝,指的是,引用地址的拷貝,棧中兩塊不同的引用地址都指向了堆中同樣一塊區(qū)域。所以,我們通過一個(gè)地址修改了堆中的數(shù)據(jù),...
摘要:如圖遍歷數(shù)組遍歷數(shù)組元素并以某種方式處理每個(gè)元素是一個(gè)常見的操作。如圖不過,里的功能比較強(qiáng)大,可以遍歷而且返回值是的則被省略掉總結(jié)遍歷對象,遍歷出來的是鍵名,而不是鍵值,參數(shù)必須是對象。 可能是由于職業(yè)的關(guān)系,下班之后完全不想Open PC,但很多知識點(diǎn)有必要自己做個(gè)小小總結(jié)。本人之前對原生Array和Object完全沒概念。 遍歷對象的方法: Object.keys(Object)...
閱讀 7063·2021-09-22 15:36
閱讀 5819·2021-09-02 10:20
閱讀 1902·2019-08-30 15:44
閱讀 2682·2019-08-29 14:06
閱讀 1183·2019-08-29 11:17
閱讀 1639·2019-08-26 14:05
閱讀 3161·2019-08-26 13:50
閱讀 1583·2019-08-26 10:26