【JS】js 对象遍历

js 对象遍历

时倾发布于 今天 03:58

对象遍历方法总结:

  • for...in遍历对象自身, 包含继承, 可枚举,不含 Symbol 的属性。

  • Object.keys(obj):遍历对象自身, 不含继承,可枚举,不含 Symbol 的属性。【values, entries】

  • Object.getOwnPropertyNames(obj):遍历对象自身, 不含继承, 不含 Symbol 的属性, 不管是否可枚举

  • Object.getOwnPropertySymbols(obj): 遍历对象自身, 不含继承, 所有 Symbol 的属性, 不管是否可枚举

  • Reflect.ownKeys(obj): 遍历对象自身,不含继承,所有键名,不管是否Symbol 和可枚举。

其他方法:

  • JSON.stringify():只串行化对象自身,不含继承,可枚举,不含 Symbol属性。

  • Object.assign(): 只拷贝对象自身,不含继承, 可枚举属性, 不管是否是Symbol

方法自身属性继承属性可枚举属性Symbol属性
for...in..必须
Object.keys()必须
Object.getOwnPropertyNames(obj)非必须
Object.getOwnPropertySymbols(obj)非必须
Reflect.ownKeys(obj)非必须非必须
JSON.stringify()必须
Object.assign()必须非必须

  1. 创建父对象protoObject和子对象myObject:

const protoObject = {

show_proto: '我是可枚举 - 父',

[Symbol('symbol_show_proto')]: '我是Symbol,可枚举 - 父',

};

let myObject = {

show_my: '我是可枚举',

[Symbol('symbol_show_my')]: '我是Symbol,可枚举',

};

Object.defineProperty(myObject, 'hidden_my', {

value: '我是不可枚举',

enumerable: false,

});

Object.defineProperty(myObject, Symbol('symbol_hidden_my'), {

value: '我是Symbol,不可枚举',

enumerable: false,

});

Reflect.setPrototypeOf(myObject, protoObject);

2.查看protoObject和myObject:

【JS】js 对象遍历

3.遍历:

【JS】js 对象遍历

javascript前端

阅读 81更新于 23 分钟前

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

avatar

时倾

把梦想放在心中

56 声望

298 粉丝

0 条评论

得票时间

avatar

时倾

把梦想放在心中

56 声望

298 粉丝

宣传栏

对象遍历方法总结:

  • for...in:遍历对象自身, 包含继承, 可枚举,不含 Symbol 的属性。

  • Object.keys(obj):遍历对象自身, 不含继承,可枚举,不含 Symbol 的属性。【values, entries】

  • Object.getOwnPropertyNames(obj):遍历对象自身, 不含继承, 不含 Symbol 的属性, 不管是否可枚举

  • Object.getOwnPropertySymbols(obj): 遍历对象自身, 不含继承, 所有 Symbol 的属性, 不管是否可枚举

  • Reflect.ownKeys(obj): 遍历对象自身,不含继承,所有键名,不管是否Symbol 和可枚举。

其他方法:

  • JSON.stringify():只串行化对象自身,不含继承,可枚举,不含 Symbol属性。

  • Object.assign(): 只拷贝对象自身,不含继承, 可枚举属性, 不管是否是Symbol

方法自身属性继承属性可枚举属性Symbol属性
for...in..必须
Object.keys()必须
Object.getOwnPropertyNames(obj)非必须
Object.getOwnPropertySymbols(obj)非必须
Reflect.ownKeys(obj)非必须非必须
JSON.stringify()必须
Object.assign()必须非必须

  1. 创建父对象protoObject和子对象myObject:

const protoObject = {

show_proto: '我是可枚举 - 父',

[Symbol('symbol_show_proto')]: '我是Symbol,可枚举 - 父',

};

let myObject = {

show_my: '我是可枚举',

[Symbol('symbol_show_my')]: '我是Symbol,可枚举',

};

Object.defineProperty(myObject, 'hidden_my', {

value: '我是不可枚举',

enumerable: false,

});

Object.defineProperty(myObject, Symbol('symbol_hidden_my'), {

value: '我是Symbol,不可枚举',

enumerable: false,

});

Reflect.setPrototypeOf(myObject, protoObject);

2.查看protoObject和myObject:

【JS】js 对象遍历

3.遍历:

【JS】js 对象遍历

以上是 【JS】js 对象遍历 的全部内容, 来源链接: utcz.com/a/105250.html

回到顶部