传播要删除的语法

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"

【问题讨论】:

这不是有效的 javascript1: 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 中也可以正常工作。

以上是关于传播要删除的语法的主要内容,如果未能解决你的问题,请参考以下文章

Vue js 使用 Vuex 传播语法

在对象数组中传播语法

传播语法 Internet Explorer

在对象文字(...object)中传播语法有啥用途?

在 postgres 中传播语法 JSONB 列

对象键集中的传播语法不起作用