如何在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)
答案 0 :(得分:0)
您可以先定义const AA
和BB
......
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);
...或者您可以首先解构对象,然后使用解构变量定义AA
和BB
:
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');