title: JS-for-in与for-of的使用
date: 2020-06-11 14:58:03
tags:
- JavaScripe查漏补缺
1,forEach
定义两个形参接受值与键,同时遍历。注意,forEach第一个参数是值(value)在前!
forEach((value,index)=>{})
2,for-in(数组与对象都能用)
数组遍历的是数组下标;对象遍历的是键
for(let index in arr)
for(let key in arr)
3,for-of(原生对象不能使用)
for(let value of arr)
for(let iterator of obj)
也就是值必须是可迭代的才能正确使用。
遍历的是值,且这个值是重新开辟出来的形参(基本类型和引用类型会有不同结果);原生对象不能使用
let arr = [
{tittle:"第一章", lesson: 1},
{tittle:"第二章", lesson: 2},
{tittle:"第三章", lesson: 3}
]
//1,forEach
arr.forEach((value,index)=>{
console.log(index)//返回下标0,1,2
console.log(value)//返回对象
})
//2,for-in与for-of
//对数组使用
//arr[0],,arr[2]
//for-in
for(let i in arr){
console.log(i)//返回结果是0,1,2
console.log(arr[i])//返回的是对象
}
//for-of
for(let i of arr){
console.log(i)//返回是对象
console.log(arr.indexOf(i))//0,1,2
}
// 对第一个对象arr[0]使用
//for-in
for(let i in arr[0]){
console.log(i)//返回的是tittle和lesson,也就是键
console.log(arr[0][i])//返回的是第一章和1,也就是值
}
//for-of,会直接报错a[0]不可以迭代
for(let i of arr[0]){
console.log(i)
console.log(arr[0][i])
}
总结:就是数组的话for-in与for-of都可以用,对象不能使用for-of。