问题标签 [object-destructuring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

javascript - JS对象解构不定义变量名

在 ES6 JS 中解构对象时,您可以使用{ a, b }语法来创建新变量,分别从该对象调用a和调用。b但是,据我所知,没有办法让对象的键自动创建具有这些名称的本地范围变量。在下面的例子中,我希望能够使用它的假设伪代码,它const {} = args;会自动生成。const aconst b

原因纯粹是因为,在这个 MCVE 之外,我实际上使用了一个带有几十个键的大型对象,我想将某些值从其中传递到 Promise 链的下一部分。我当然可以使用{ a: args.a, b: args.b },但我正在尝试找到最短、最干净的方法。我想我真正想要的是 PHP 的extract()类似语法,但在 ES6 JS 中。

这可能吗?

Ps,我知道如果对象的内容不受信任,这可能被视为一个非常糟糕的主意。

pps。我正在测试的环境是 Node 7.9.0

0 投票
2 回答
2516 浏览

javascript - 解构对象参数,还要把参数当作对象引用?

使用 ES6,您可以在函数参数中解构对象:

等效的 ES5 将是:

但是如果我想同时引用对象和params嵌套属性怎么办?这是我得到的最接近的,但缺点是它不适用于箭头函数,因为它们无权访问对象:valuenamearguments

0 投票
2 回答
1999 浏览

javascript - JavaScript:反向对象解构/重构代码以更新对象

TLDR:如何使用解构来加速基于同一接口的另一个对象的一个​​对象的部分更新?

我想使用新的 ECMA2015 - 2017 JavaScript 来重构我的代码。

为简单起见,假设我有一个对象,如下所示:

(导出界面有效,因为我正在使用 Typescript 在 Angular 中工作)。

这是旧的 es5 函数:

如您所见,该函数应该更新 oldObj 的某些部分,但也保留一些部分。

这是我重构代码的尝试:

但我不知道,我现在如何将 oldObj 的布尔值分配给保存的布尔值。

一种不优雅的方式是

在这个例子中会很好。但是在我的实际任务中,这会花费很多代码行,这就是我想要重构的原因。

我只是想不出正确的语法。

我对此进行编码的尝试看起来像这样:

但这不起作用。

0 投票
1 回答
1989 浏览

javascript - 使用接口破坏对象

我有这个代码:

const {items} = this.props;

但是,我需要将接口设置为items常量

我不想这样做:

const items: ItemsInterface = this.props.items

可能的?

0 投票
2 回答
260 浏览

javascript - Correct way of object destructuring

I have a scenario, where I receive an obj from a promise, and need to add some keys of this object to another object. For example:

Normally I could do like following, but I want to do it with object destructuring

to have:

0 投票
1 回答
423 浏览

javascript - 如何通过解构赋值将数据绑定到这个?

我想通过添加新的键和值到this对象destructuring assignment,但它出错了:

让我们看看我的例子,假设我有obj数据对象:

现在我想将此数据绑定到this对象,这意味着我们想要:

因此,通过解构赋值,我可以这样写:

但它陷入了错误:

我不使用constlet或者var因为该this对象已经被声明。我怎样才能达到我的愿望?有可能destructuring assignment吗?

只需通过正常分配即可:

我只是想要正确的新的和漂亮的JavaScript代码。

0 投票
1 回答
26 浏览

javascript - 使用对象解构语法设置先前初始化变量的值

我的情况是我要设置许多变量 - 但是,它们的值取决于另一个变量。所以这就是我的意思

我使用稍后声明的变量,因此始终在条件内声明它们是不好的,因为它们对函数的剩余范围不可见。上面的代码确实有效,但给出了“变量已定义,不重新声明”警告。我喜欢使用 Object destructuring 语法,并且不希望将每个变量分开到自己的行(如 columns = this.props.dependenciesTable.column) 我想知道是否有一种方法可以在 JavaScript 中有条件地设置变量?

还是有其他可行的方法...

0 投票
3 回答
387 浏览

javascript - 为什么在声明的对象上解构 ES6 会出现问题?

我有一个问题,或者更多一些奇怪的情况。我正在使用https://es6console.com

我想使用解构并将属性分配给已声明的变量。看来我声明对象的位置有问题。请打开https://es6console.com/jm6e72c7/并单击转换为 ES5。有一种奇怪的行为,我在变量之后声明对象。

0 投票
1 回答
1034 浏览

javascript - 在对象破坏赋值中转义保留关键字

是否可以在对象破坏分配中使用保留关键字。

具体来说,我正在尝试使用名为 default 的属性来处理 JSON。


0 投票
1 回答
54 浏览

ecmascript-6 - 使用其他解构值的对象解构默认值

以下适用于节点v8.11.4和在 chrome 上运行的 babel 转译 JavaScript

在 EMACScript 2015 中,这可以保证如上所示工作吗?

我知道 node 和 babel 不是 100% EMACScript 2015 投诉,但我相信它们都实现了对象解构规范我在mdn上找不到任何明确的说明,也没有在官方ECMAScript 2015 规范上