當前位置:成語大全網 - 新華字典 - js中數組和對象循環遍歷

js中數組和對象循環遍歷

數組:

var arr = [‘a’,‘b’,'c'];

for (let i = 0;i<arr.length;i++){

console.log(i,arr[i])

};

對象:

var person = { name:'tom',age:'29',sex:'男‘};

// 對象如果要用for循環來遍歷,需要先有Object.key()的方法來拿到可叠代(遍歷)的私有屬性名的集合(數組)

var keys = Object.keys(person);

for (let i = 0;i<keys.length;i++){

console.log(keys[i]+":"+person[keys[i]]);

};

數組:

for(let key in arr){

// 值得註意的是,key為數組的索引,如若需要獲取屬性的值,則需要使用數組加索引下標 的形式來獲取

console.log(key,arr[key]);

}

對象:

for(let key in obj){

// 值得註意的是,key為對象的鍵名,鍵值要以obj[key]的方式來獲取

console.log(key,obj[key]);

}

數組:

for(let value of arr){

//值得註意的是,for...of跟for...in是不壹樣的,for...in遍歷的是數組的索引,for...of遍歷的是數組的值

console.log(value);

}

對象:

for...in是不能單獨來遍歷壹個對象的,會報錯。

如果對象是壹個類數組對象,那用array.from方法轉成壹個數組就可以用for...of來遍歷了。

或者結合Object.keys()方法來使用

for(let key of Object.keys(obj)){

// for...of遍歷輸出的也是鍵名

console.log(key,obj[obj]);

}

數組:

forEach()方法遍歷數組是沒有返回值

值得註意的是數組中有幾項,那麽傳遞進去的匿名回調函數就需要執行幾次;

arr.forEach((item,index,arr)=>{

console.log(item,index,arr)

)

// 其中item是數組中的當前項,index是數組中的當前下標,arr是原始數組

對象:

原則上forEach是用來遍歷數組的,不能遍歷對象,但是可以用Object.getOnwPropertyNames()方法來使得對象能被forEach遍歷出來。

Object.getOnwPropertyNames()返回壹個數組,成員是參數對象自身全部屬性的屬性名,不管該屬性是否能被遍歷。

Object.getOnwPropertyNames(obj).forEach((item,index,arr)=>{

console.log(item,index,obj[item])

})