【发布时间】:2019-10-12 17:39:47
【问题描述】:
假设我有一个对象,我想在其中保留仅限内部的键/符号对。给定...
let obj = {
[Symbol.for('foo')]: 'internal-only member',
a: 1,
b: 2,
c: 3
}
当我通过我的 API 将这些返回给客户端时,我想从对象中删除所有符号,因为客户端对它们没有任何用处。
我想要一个能返回的通用函数:
{
a: 1,
b: 2,
c: 3
}
换句话说:
returnScrubbedObj = (obj) => {
// filter/map/remove/copy etc the original object to a new object without symbols
return objWithoutSymbols
}
我知道可能有很多不同的方法可以做到这一点;只是在寻找最好/最有效的。
【问题讨论】:
-
试试
JSON.parse(JSON.stringify(obj)) -
通常我认为
JSON.parse(JSON.stringify(obj))会起作用,但可能是因为我使用的是 TypeScript(上面没有提到)它正在更改对象的定义,因为这不会从物体。奇怪。 -
我认为我做错了什么,因为这确实有效。
标签: javascript object ecmascript-6