for in
是芸芸数组方法中的一员 , 这篇简单聊一聊 for in
小朋友的故事
☆ for in
语法
for in ( let key in obj ) {
console.log(obj[key])
}
for in 可以遍历数组和对象
☆ 遍历对象
const object = { a:1 , b:2 }
for in ( let key in object ) {
console.log(key)
}
// 打印输出 1,2
for in
遍历对象时 , key
为对象的键 , obj[ key ]
为遍历每项的值
☆ 遍历数组
const array = [ 'a' , 'b' ]
for in ( let key in array ) {
console.log(key)
}
// 打印输出 1,2
for in
遍历数组时 ,key
为数组下标 ,obj[ key ]
为遍历每项的值- 使用
for...in
循环遍历数组时,key
变量将会是字符串类型,而不是数字类型。因此,在访问数组元素时,需要将key
转换为数字类型。
需要注意的是,
for...in
循环不仅会遍历数组的元素,还会遍历数组的原型链
上的属性
☆ 遍历对象原型
for in
同样可以遍历对象的原型- 我们可以尝试在对象原型上增加属性 , 然后通过
for in
来进行遍历访问
// 1.定义一个对象有a , b属性
const object = { a:1 , b:2 }
// 2.在对象原型上增加属性
obj.__proto__ = { c:3 , d:4 }
// 3.for in 进行遍历
for(let key in obj) {
console.log(key)
}
// 打印结果为 a , b , c , d
☆ 只遍历对象 , 不遍历原型
如果我们只想访问对象本身的属性 , 为了避免遍历到不必要的属性,可以使用hasOwnProperty()
方法来过滤只属于数组自身的属性
for(let key in obj) {
if(obj.hasOwnProperty(key)){
console.log(key)
}
}
完结撒花✿✿ヽ(°▽°)ノ✿