例如,如果我有两个对象:
var foo = {
x: "bar",
y: "baz"
}
Run Code Online (Sandbox Code Playgroud)
和
var oof = {}
Run Code Online (Sandbox Code Playgroud)
我想将x和y值从foo转移到oof.有没有办法使用es6解构语法?
也许是这样的:
oof{x,y} = foo
Run Code Online (Sandbox Code Playgroud) 我有一系列的值,如:
const arr = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用解构来创建以下输出?如果没有,我在ES6(或更高版本)中最简单的方法是什么?
const obj = {
one: 1,
two: 2,
three: 3
};
Run Code Online (Sandbox Code Playgroud)
我试过这个,但我猜它不起作用,因为这是计算键的语法:
const arr = [1,2,3];
const obj = {
[one, two, three] = arr
};
Run Code Online (Sandbox Code Playgroud) 我确信这是相对简单的,我错过了一些明显的东西.我正在阅读Mozilla关于ES6 的教程,他们关于解构的章节包含以下模式:
功能参数定义
作为开发人员,我们通常可以通过接受具有多个属性作为参数的单个对象来展示更符合人体工程学的API,而不是强迫我们的API使用者记住许多单个参数的顺序.每当我们想要引用它的一个属性时,我们可以使用解构来避免重复这个单个参数对象:
Run Code Online (Sandbox Code Playgroud)function removeBreakpoint({ url, line, column }) { // ... }这是Firefox DevTools JavaScript调试器(也在JavaScript-yo dawg中实现)的简化现实代码片段.我们发现这种模式特别令人愉悦.
我不明白这与解构有何关系.您是否允许将对象传递给此函数的想法,只要它包含所有项目,即可以按任意顺序进行,即{ line: 10, column: 20, url: 'localhost' }?
如果是这样,那么有什么好处呢
function removeBreakpoint(params) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
其中params为与对象url,line和column?是否只是强制Javascript在通过显式定义它们时在析构化上下文中使用时验证函数的参数?