Enjoy the good life everyday!
关闭
欢迎来PyGo个人空间 ^_^
Javascript对象属性的遍历 | PyGo²

Javascript对象属性的遍历

7种Javascript对象属性遍历的方法。

Javascript

测试数据

1
2
3
4
5
6
7
8
var name = 'mingliang.gao';
var demo = {
name,
language: 'js',
say() {
return ('name: ', name, 'language: ', language)
}
}

方法一:for…in

for…in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。

1
2
3
for (let k in demo){
console.log(k)
}

结果:

1
2
3
name
language
say

方法二:Object.keys(obj)

Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。

1
console.log(Object.keys(demo))

结果:

1
[ 'name', 'language', 'say' ]

方法三:Object.getOwnPropertyNames(obj)

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

1
console.log(Object.getOwnPropertyNames(demo))

结果:

1
[ 'name', 'language', 'say' ]

方法四:Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols返回一个数组,包含对象自身的所有 Symbol 属性的键名。

1
console.log(Object.getOwnPropertySymbols(demo))

结果:

1
[ 'name', 'language', 'say' ]

方法五:Reflect.ownKeys(obj)

Reflect.ownKeys返回一个数组,包含对象自身的(不含继承的)所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举。

1
console.log(Reflect.ownKeys(demo))

结果:

1
[ 'name', 'language', 'say' ]

方法六:getOwnPropertyDescriptor(obj, ‘属性名’)

对象的每个属性都有一个描述对象(Descriptor),Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。

1
console.log(getOwnPropertyDescriptor(demo, 'name'))

结果:

1
2
3
4
{ value: 'mingliang.gao',
writable: true,
enumerable: true,
configurable: true }

方法七:解构赋值

1
2
3
4
let { name, language, say, ...args } = demo;
console.log(language)
console.log(say)
console.log(args)

结果:

1
2
mingliang.gao
python

  • 本文作者:mingliang.gao【一个爱老婆Python程序猿。。。。。。】
  • 本文链接: http://pygo2.top/articles/27964/
  • 版权声明: 本博客所有文章欢迎转载,转载请注明出处!
觉得有帮助 请偶坐个公交车
0%