大家好,欢迎来到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