JavaScript中的各种遍历

前言

一直想写些总结性的文章,事情太多,无从下手,加上太懒,迟迟没有动笔。一天天过去,日积月累的,心头像被压了一层层的稻草,难受极了。不想太多,一件件地做,每做一件就少一件,尽管杂乱繁重,最终总会清空的。

在学习和实践过程中也许会碰到更多的有关遍历的知识,每遇到一点就追加一点,持续更新。现在把能想到的总结下来。

对象的遍历

对象属性的遍历,方法有以下几种

  • for…in
  • Object.keys()
  • Object.getOwnPropertyNames()

1. for…in

for…in是通过in运算符遍历对象中的可枚举属性,包括原型中的属性

// 构造函数中定义私有属性
function Animal(name) {
   
    this.name=name
    this.run = function() {
   
    	console.log(this.name + ' is running')
    }
}
// 定义原型上的共享属性
Animal.prototype.age=12
Animal.prototype.say = function() {
   
    console.log(this.name + ' is saying')
}
// 创建对象,枚举对象中的属性
var animal = new Animal('kikky')
for (prop in animal) {
   
    console.log(prop + ':' + animal[prop])
}

输出结果为:

name:kikky
run:function() {
    console.log(this.name + ' is running')
}
age:12
say:function() {
    console.log(this.name + ' is saying')
}

通常为了只枚举对象的私有属性,会用一个判断函数hasOwnProperty()来过滤掉原型中的属性。

var animal = new Animal('kikky')
for (prop in animal) {
   
    if (animal.hasOwnProperty(prop)) {
   
        console.log(prop + ':' + animal[prop])
    }
}

如果只想枚举对象的私有属性,也可以直接用Object.keys()

2. Object.keys()

Object.keys()是构造函数Object的一个方法函数,它获取的是自身属性中的可枚举属性,不包括原型中的属性,返回的是一个包含对象属性名称的数组。

// 构造函数中定义私有属性
function Animal(name) {
   
    this.name=name
    this.run = function() {
   
    	console.log(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值