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])
})