for遍历对象的问题:
- 对象没有长度length,而且是无序的
所以我们要利用for in 遍历对象
语法:
for(let 变量 in 对象){
console.log(变量) // 属性名
console.log(对象[变量]) // 属性值
}
- for in 语法中的k是一个变量,在循环的过程中依次代表对象的属性名。
- 由于k是变量,所以必须用[]语法来解析。
- k是获取对象的属性名,对象名[k]是获取对象的属性值。
- 一般不用这种方式遍历数组,主要用来遍历对象。
<script>
// 遍历对象
let pig = {
sex: '女',
age: 4,
uname: '佩奇',
weight: 12.6,
}
// for (let key in pig) {
// console.log(key) // key 是属性
// console.log(pig[key]) // 对象[变量] 是值
// }
for (let key in pig) {
console.log(key) // key 是属性 对象.属性
// console.log(pig.key) // pig.key undefined 因为key是个变量不是属性
// key 'sex' 'age' 对象[key] 对象['sex'] 对象['age']
console.log(pig[key])
}
// 注意:数组遍历用传统for, for in 主要用来遍历对象
let arr = ['red', 'green', 'pink']
for (let k in arr) {
console.log(k)// 得到字符串类型的索引号
}
</script>