js中对象的几种遍历方法是什么_遍历对象自身属性

js中对象的几种遍历方法是什么_遍历对象自身属性1.forin遍历forin用来遍历对象自身和其可枚举属性(不含symbol属性),且可遍历对象原型上的属性。letobj={name:'hong',age:20,sex:'nan'}Object.prototype.scholl=

大家好,欢迎来到IT知识分享网。

1. for in 遍历

for in用来遍历对象自身和其可枚举属性(不含symbol属性),且可遍历对象原型上的属性。

let obj = {
  name: 'hong',
  age: 20,
  sex: 'nan'
}

Object.prototype.scholl = 'wyu'
Object.prototype.say = function () {
  console.log('hello!')
}

for (let i in obj) {
  console.log(i + ':' + obj[i])
}

// 打印以下信息
// name:hong
// age:20
// sex:nan
// scholl:wyu
// say:function () {
//   console.log('hello!')
// }

 若只遍历对象上的实例属性,不遍历对象原型上的属性,可用 hasOwnProperty 来判断一下是否为该对象实例的属性,再进行遍历。

for (let i in obj) {
  if (obj.hasOwnProperty(i)) {
    console.log(i + ':' + obj[i])
  }
}
// 输出
name:hong
age:20
sex:nan

2. 使用 Object.keys 和 Object.values 遍历 

let obj = {
  name: 'hong',
  age: 20,
  sex: 'nan'
}

console.log(Object.keys(obj)) //[ 'name', 'age', 'sex' ]
console.log(Object.values(obj)) //[ 'hong', 20, 'nan' ]

3. Object.getOwnPropertyNames(obj) 方法

返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)

let obj = {
  name: 'hong',
  age: 20,
  sex: 'nan'
}

let objKeys = Object.getOwnPropertyNames(obj)
console.log(objKeys) //[ 'name', 'age', 'sex' ]
objKeys.forEach(key => {
  console.log(obj[key])
})
//hong
//20
//nan

4. Reflect.ownKeys(obj)遍历

返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举. 

let obj = {
  name: 'hong',
  age: 20,
  sex: 'nan'
}

console.log(Reflect.ownKeys(obj))

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29868.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信