ES6:使用解构将嵌套数组传输到包含对象的数组中

时间:2017-01-17 09:06:11

标签: javascript

我正在学习ES6 Destructuring,并尝试找出将2个数字作为元素(例如x和y坐标)的嵌套数组转换为仅使用解构的对象数组的不同方法。

const points = [
  [4, 5],
  [3, 12],
  [9, 30]
]

// goal: transfer to this format:
// [
//   {},
//   {},
//   {}
// ]

一个(可能)最好的解决方案:

points.map(([ x, y ]) => {
  return { x, y };
});

另一次尝试:

points.map(pair => {
  const x = pair[0],
  const y = pair[1]
});

// Uncaught SyntaxError: Unexpected token const

为什么我在这里得到一个SyntaxError?

使用:

points.map(pair => {
  const [ x, y ] = pair;
});

我得到一个包含3个未定义元素的数组。为什么呢?

1 个答案:

答案 0 :(得分:0)

在一行中,返回是自动的。

<强>一:

points.map(([ x, y ]) => ({ x, y }));

<强>两个

points.map(pair => ({x: pair[0], y: pair[1]}));

或多行:

points.map(pair => {
  const x = pair[0];
  const y = pair[1];
  return {x, y};
});

三:

points.map(pair => {
  const [ x, y ] = pair;
});