1.標準的for迴圈遍歷陣列
//不列印自定義屬性和繼承屬性
var array = [1,2,3];
for (var i = 0; i < array.length; i++)
2.for in 遍歷物件
不要用for in遍歷陣列,因為還會列印自定義屬性和繼承屬性
一般常用來遍歷非陣列的物件並且使用hasownproperty()方法去過濾掉原型鏈上的屬性
陣列的key是string型別,因為js中一切皆為物件。
var array = [1,2,3];
//自定義屬性
array.desc ='four';
//繼承屬性 擴充套件了js原生的array
array.prototype.test=function(){}
array.hasownproperty('desc') //true
array.hasownproperty('test') //false
for(var key in array)
3.for of遍歷陣列
es6裡引入了一種遍歷器(iterator)機制,為不同的資料結構提供統一的訪問機制。只要部署了iterator的資料結構都可以使用 for ··· of ··· 完成遍歷操作
它既比傳統的for迴圈簡潔,同時彌補了foreach和for-in迴圈的短板。
迴圈遍歷鍵值對的value,與for in遍歷key相反
如果實在想用for…of來遍歷普通物件的屬性,可以先獲取物件的所有key的陣列object.keys(),然後遍歷
( iterator詳解 : )
( for of 例子: )
//不列印自定義屬性和繼承屬性
for(var value of array)
4.foreach遍歷陣列 vs map vs $.each
foreach遍歷陣列,而且在遍歷的過程中不能被終止,必須每乙個值遍歷一遍後才能停下來
//不列印自定義屬性和繼承屬性
array.foreach((value,index,arr)=>);
//注意其與jquery的$.each類似,只不過第1個和第2個引數正好是相反的
//thisarg為執行**時的this值
.foreach(function(value, index, array) ,thisarg) //返回值:undefined
.map(function(value,index,array), thisarg) //返回值:返回乙個新陣列,陣列中的元素為原始陣列元素呼叫函式處理後的值。
$.each(, function(index, value) ); //$.each遍歷陣列或者類陣列
5.$.each$.each(, function(index, value) ); //$.each遍歷陣列或者類陣列
$.each({}, function(key, value) ); //$.each遍歷object
$().each(function(index, value) ); //遍歷dom元素
跳出 jquery each迴圈,要實現break和continue的功能
對於類似陣列的結構,可轉換為陣列
//divlist不是陣列,而是nodelist
var divlist = document.queryselectorall('div');
.slice.call(divlist)
array.prototype.slice.call(divlist)
[...divlist] //es6寫法
總結: js遍歷陣列(物件)
例 let arr 1,2,3 for let i 0 iconsole.log arr i 輸出結果 1 2 3 例 let arr 1,2,3 for let i in arr 輸出結果 1 2 3 說明 同普通for迴圈,以key遍歷查詢陣列或物件 例 let arr 1,2,3 for le...
js迴圈遍歷陣列的方式
最近在寫前端 裡面經常涉及到陣列的迴圈取值。這裡簡單總結下前端中陣列遍歷的四種方式 假設有如下陣列 members,每個陣列元素是乙個字典 map,要遍歷陣列列印每個memberid的值。var members 通過陣列下標方式訪問,比較通用的方法 for var index 0 index mem...
Java遍歷陣列物件的方式
下面討論 不做解釋 要明白編寫的 在電腦中是怎麼儲存的。以本 為例 首先你要知道你執行例項 例如stu 0 new student 張三 18 這樣是在 堆空間裡面建立乙個 student 空間裡面存放各種屬性,而 stu 0 儲存的是指向這個空間的 乙個位址 所以遍歷出來就是這個位址 又如stud...