使用点符号作为键,无法从数组对象中创建修改后的数组。

为什么我不能设置一个 key 在一个新创建的对象中,像这样。

const baseObject = {key: "a", val: "b"}
const modifiedObject = {baseObject.val: baseObject.key} // SyntaxError: Unexpected token '.'

但是用括号来代替就可以了

const modifiedObject = {[baseObject.val]: baseObject.key} // OK

根据我的理解 [baseObject.val] 应该从 baseObject.val 只有该项目在其中。你能解释一下为什么这样做?这是否是设置 key 从一个对象的嵌套属性中获取?

我试图在MDN和其他来源上找到信息,但找不到任何信息.我假设我的搜索短语是错误的,因为应该有一个相当基本的解释.如果你能把我链接到已经提供的答案,请随时标记为重复。

解决方案:

你有什么 [baseObject.val] 不是一个数组,而是一个 “计算的财产名称”,是对象文字的一种特殊语法,它的作用是,当一个对象文字的内部应该有一个键的时候,它就会对括号内的表达式进行评估,然后在用该表达式构造的对象上定义一个属性。

它的作用是,当在一个对象文字中应该有一个键时,它评估括号内的表达式,然后在用该表达式构造的对象上定义一个属性。例如 { ['foo']: 'bar' } 导致 { foo: 'bar' }. { ['a' + 'b']: 'bar' } 导致 { ab: 'bar' }.

你可以在 [] 括号中,结果将是放在对象上的键。对于您的情况,您希望表达式的值是 baseObject.val因此,语法为 [baseObject.val]:.

给TA打赏
共{{data.count}}人
人已打赏
未分类

春天数据Neo4j APOC不执行但不出错

2022-9-8 23:28:37

未分类

Bot框架网络聊天 阅读更多能力

2022-9-8 23:28:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索