相关疑难解决方法(0)

ES6结构分配?

ES6的新解构分配功能现在已经众所周知(Babel的REPL上的实时副本); 在存在的变量的情况下:

let a, b;                 // Existing variables
let o = {a: "a", b: "b"}; // An object to get values from
// ...
({a, b} = o);             // Set them to the props from `o`
console.log(a);           // "a"
console.log(b);           // "b"
Run Code Online (Sandbox Code Playgroud)

ES6中是否有简单的说法?基于具有相同名称的变量设置现有对象的属性?(除了显而易见的o.a = a; o.b = b;)

注意我不是在讨论创建对象时,我们可以使用美妙的新对象初始化器语法来实现这一点,这样我们就不会不必要地重复这些名称:

let a = "a";
let b = "b";
let o = {a, b};
Run Code Online (Sandbox Code Playgroud)

但是如果我已经有了一个对象,我可以在ES6中进行某种结构分配吗?

javascript destructuring variable-assignment ecmascript-6

13
推荐指数
1
解决办法
2010
查看次数

用于从析构数组创建对象的代码段

例如,我有一个包含3个数字的数组:

var arr = [124, -50, 24];
Run Code Online (Sandbox Code Playgroud)

我需要将此数组转换为对象:

{
   x: 124,
   y: -50,
   z: 24
}
Run Code Online (Sandbox Code Playgroud)

我不想为此使用"旧式"语法,例如:

{
  x: arr[0],
  y: arr[1],
  z: arr[2]
}
Run Code Online (Sandbox Code Playgroud)

所以现在,我正在使用这种语法:

const [x, y, z] = [...arr];
const obj = {x, y, z};
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法用直接的解构数组来对象而不需要临时变量?

javascript arrays ecmascript-6

11
推荐指数
1
解决办法
163
查看次数

更干净的 Promise.all 语法?

我对 Node.JS 相当陌生,我真的很讨厌 Promise.all 返回数组的语法。

例如。

const requiredData = await Promise.all([
        getFirst(city),
        getSecond(hubIds),
        getThird(city, customerCategoryKey),
        getFourth(request)
    ])

const firstData = requiredData[0];
const secondData = requiredData[1];
const thirdData = requiredData[2];
const fourthData = requiredData[3];
Run Code Online (Sandbox Code Playgroud)

我需要在单独的代码行中单独获取它们。有没有类似的方法

const {
firstData,
secondData,
thirdData,
fourthData
} = await Promise.all([
        getFirst(city),
        getSecond(hubIds),
        getThird(city, customerCategoryKey),
        getFourth(request)
    ])
Run Code Online (Sandbox Code Playgroud)

基本上,我真的很喜欢是否有比第一个代码片段更简洁的方法。

蒂亚!

javascript node.js promise

2
推荐指数
1
解决办法
228
查看次数