问题标签 [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 回答
2543 浏览

javascript - 为什么解构赋值不知道空值是假的并使用默认值?

假设我们有一个函数在参数的内部对象中使用了一些键:

如果我们将{}, { data: '' }, { data: 0 }, { data: NaN }or{ data: undefined }传递给函数,我们将看到:

并且不会看到任何错误,因为解构赋值看到datais falsy 并使用 = {}而不是namewill be undefined

问题为什么当我们传递null给数据键时解构赋值返回错误?

0 投票
1 回答
2490 浏览

javascript - TypeScript 导入与 ES6 对象解构

使用 TS 导入,我相信我可以做到这一点:

在 JS 或 TypeScript 中使用 ES6 对象解构 - 有没有办法以相同的方式重命名“导入的值”?

例如,

0 投票
4 回答
503 浏览

javascript - 用于构造新对象的对象解构

我有一个来自 API 响应的对象,如下所示:

我想声明一个名为 apiUser在我的应用程序中使用的新对象,它看起来像这样:

我知道我可以这样做Object.assign()

最后的问题是:我可以通过对象解构来做到这一点吗?我已经尝试过:

但是抛出并且SyntaxError: Unexpected token :有任何正确的语法还是我应该坚持Object.assign()?请不要忘记“John Doe”条件。

0 投票
0 回答
978 浏览

javascript - 如何在 let 中使用解构赋值

我想let和 ES6 语法一起使用,比如:

可能吗?

0 投票
1 回答
184 浏览

javascript - 如何在函数定义中使用 ES6 多个解构参数?

我想知道当两个参数都属于同一类型时,如何使用给函数的解构多个参数。
例如,考虑我有以下代码:

现在,如您所见,函数中只使用了和对象的name属性。那么我将如何使用对象解构来更改代码,如下所示:ab

0 投票
1 回答
1795 浏览

node.js - 在nodejs中的构造函数内部破坏对象以将值分配给成员变量不起作用

我正在尝试在构造函数中进行 ES6 对象解构,希望将值分配给成员变量。它不工作。当我在成员函数中打印值时,它显示未定义。如果我在构造函数中打印,它的打印正确。这有效吗?

0 投票
1 回答
156 浏览

javascript - 在函数参数中解构后返回相同的对象

假设我有一个对象

var bar = {hi: 1, there: 2};

我想在函数结束时返回传递的相同对象,同时在函数参数中进行解构赋值。

它可能看起来像这样:

bar; 并且返回值与扩展运算符在这种情况下不起作用的明显原因相同,但我想知道是否有一种简单的方法可以做到这一点或类似的东西。

0 投票
1 回答
200 浏览

javascript - 以解构对象作为第二个参数引用第一个参数的 ES6 默认参数

我正在编写一个采用两个参数的方法:第一个是包含表单的 jQuery 对象,第二个是具有默认参数的“选项”对象,其中一些在第一个参数中引用表单。

我知道默认参数可以引用它之前的默认参数的值,所以我想知道为什么我的代码会失败。

有人可以解释一下这有什么问题吗?

0 投票
2 回答
50 浏览

javascript - 当第一个属性为空或未定义时如何使用 ES6 对象解构默认为另一个属性

当第一个属性为空或使用 ES6 对象解构未定义时,寻找一种从对象访问第二个非空属性的简洁方法。

ES5 等效:

使用 ES6(类似):

0 投票
2 回答
65 浏览

javascript - 为什么这些解构赋值不等效?

我正在尝试嵌套这些解构赋值,以便分别初始化为context1和:context2market[pair.context]market[pair.target]


我认为这种正确的方法是这样的:

但是,当market[pair.context]market[pair.target]已经存在时,它的行为似乎并不像预期的那样。

我对解构还很陌生,但我决心掌握它。为什么会这样,我如何结合前两个解构?


测试相关代码: