如何在ES6中使用对象结构

时间:2016-04-26 11:02:10

标签: object ecmascript-6 destructuring

如何在ES6中执行以下方案

const x = {a: 10, aa: 100, b: 20, bb: 200}
const AA = {
  a: x.a,
  aa: x.aa
}
const BB = {
  b: x.b,
  bb: x.bb
}

我期待像

这样的东西
const x = {a: 10, aa: 100, b: 20, bb: 200}
const AA = ({ a, aa } from x)
const BB = ({ b, bb } from x)

2 个答案:

答案 0 :(得分:0)

您可以先定义const AABB ......

const AA = {}, BB = {};
const x = {a: 10, aa: 100, b: 20, bb: 200};
({a: AA.a, aa: AA.aa, b: BB.b, bb: BB.bb} = x);

...或者您可以首先解构对象,然后使用解构变量定义AABB

const x = {a: 10, aa: 100, b: 20, bb: 200}
const {a, aa, b, bb} = x;
const AA = {a, aa};
const BB = {b, bb};

答案 1 :(得分:0)

对象解构是这项工作的错误工具。你想要的有时被称为“采摘”,可以很容易地实现:

function pluck(obj, ...props) {
  const result = {};
  for (let prop of props) {
    result[prop] = obj[prop];
  }
  return result;
}

const AA = pluck(x, 'a', 'aa');
const BB = pluck(x, 'b', 'bb');