【问题标题】:Spread syntax to remove传播要删除的语法
【发布时间】:2019-02-09 23:21:56
【问题描述】:

我不想删除一把钥匙。看这个

console.log(state);

我收到{1: {here is next object}}, 下一个

const { 1: deletedValue, ...newState } = state;
console.log(newState);
console.log(state);

我得到

{1: {here is next object}}
{1: {here is next object}}

删除不起作用。我不明白为什么

在您邀请的评论中描述数据看起来如何更准确:

state: {1: {id: 1, content: {name: "xyz", surname: "dsd"}},
2: {id: 2, content: {name: "abc", surname: "dsq"}}
}

【问题讨论】:

标签: javascript ecmascript-6 babeljs spread-syntax


【解决方案1】:

看起来像是 babeljs 的问题。

将数字作为destructuring assignment 的属性的问题。

var object = { 1: 40, foo: 41, bar: 42, baz: 43 },
    { 1: y, foo: z, ...x } = object;
    //^
    
console.log(x);
console.log(y);
console.log(z);

将字符串数字作为目标属性,而不仅仅是数字。

var object = { 1: 40, foo: 41, bar: 42, baz: 43 },
    { '1': y, foo: z, ...x } = object;
    //^^^
    
console.log(x);
console.log(y);
console.log(z);

【讨论】:

  • 我不知道。可能是一个错误,或者它需要一个字符串作为键。
  • 我明天看看。
  • 可能是 babel 错误?这是真的,我使用:babeljs.io/docs/en/babel-plugin-transform-object-rest-spread。所以我不知道。 ://
  • @konradolejnik,使用 chrome 可以按预期工作。我假设,这是对象识别部分的错误,其中密钥存储为数字,应该存储为字符串。
  • @konradolejnik, Nina:如果是这样,那么应该更新问题和答案以明确调用 babel 转换。例如。我不知道您(Nina)实际上为代码 sn-ps 启用了 Babel。它在 Firefox 中也可以正常工作。
猜你喜欢
  • 2019-05-14
  • 2019-04-16
  • 2017-03-25
  • 2017-12-09
  • 2017-12-13
  • 2011-03-03
  • 1970-01-01
  • 2012-05-31
  • 2016-07-17
相关资源
最近更新 更多