JavaScript:通过计算键动态解构对象
Posted
技术标签:
【中文标题】JavaScript:通过计算键动态解构对象【英文标题】:JavaScript: Object destructuring dynamically via computed keys 【发布时间】:2019-08-11 02:39:07 【问题描述】:我正在尝试编写一个柯里化函数 dissoc,它接受一个 prop 和一个对象,并从对象中删除键及其值。
这是有效的代码:
const dissoc = prop => obj =>
const result = ;
for (let p in obj)
result[p] = obj[p];
delete result[prop];
return result;
;
现在,我认为这可以通过使用computed properties、解构和其余运算符来写得更简洁:
const dissoc = prop => ( [prop], ...obj) => obj
但是这段代码会抛出:
Uncaught SyntaxError: Unexpected token ,
所以我尝试了:
const dissoc = prop => ( prop, ...obj) => obj
计算,但只返回没有道具的对象。
有没有办法动态解构和/或简化这段代码?
【问题讨论】:
【参考方案1】:您需要一个目标变量,例如下划线作为未使用变量/占位符的符号。
const dissoc = prop => ( [prop]: _, ...obj) => obj
javascript 没有使用变量变量的概念,如 php 使用 $$variable
,其中 $variable
的值被视为变量。在这种情况下,您需要另一个变量,因为 computed property name 并且没有真正的变量,它不起作用。
也许值得一读:Object property assignment pattern [YDKJS: ES6 & Beyond]
【讨论】:
哇,真快。我可以在 12 分钟内接受你的回答。非常感谢。以上是关于JavaScript:通过计算键动态解构对象的主要内容,如果未能解决你的问题,请参考以下文章