JS中遍歷陣列 物件的方式

2022-09-03 06:54:12 字數 1880 閱讀 5764

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...