使用 Symbol 键遍历对象属性
Posted
技术标签:
【中文标题】使用 Symbol 键遍历对象属性【英文标题】:Iterate through object properties with Symbol keys 【发布时间】:2018-05-02 12:12:43 【问题描述】:我需要遍历一个包含键符号的对象。以下代码返回一个空数组。
const FOO = Symbol('foo');
const BAR = Symbol('bar');
const obj =
[FOO]: 'foo',
[BAR]: 'bar',
Object.values(obj)
如何迭代obj
中的值,以便得到['foo', 'bar']
?
【问题讨论】:
检查Object.getOwnPropertySymbols(obj)
developer.mozilla.org/de/docs/Web/javascript/Reference/…
【参考方案1】:
您可以使用
遍历 Object 的所有键(字符串和符号键)Reflect.ownKeys()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys
【讨论】:
【参考方案2】:Object.values
只获取所有可枚举命名(字符串键)属性的值。
你需要使用Object.getOwnPropertySymbols
:
console.log(Object.getOwnPropertySymbols(obj).map(s => obj[s]))
【讨论】:
以上是关于使用 Symbol 键遍历对象属性的主要内容,如果未能解决你的问题,请参考以下文章