传播要删除的语法
Posted
技术标签:
【中文标题】传播要删除的语法【英文标题】: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:1: here is next object
。也许您可以编辑问题以显示您的数据的真实情况。
请提供可重现问题的可运行minimal reproducible example
How do I remove a property from a JavaScript object?的可能重复
问题解决者:Nina Scholz。我已经编辑以准确显示数据的样子。
【参考方案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 中也可以正常工作。以上是关于传播要删除的语法的主要内容,如果未能解决你的问题,请参考以下文章