说我有一个对象:
const ob = { a : 1, b : 'hello world', c : 3, d : false, e : { zn : 'nested value' }};
我想要一个单行,最好使用destruct在本地范围内获取5个新变量。
//do something with ob
//now i want to have 5 const/let defined in local scope
// such as, a =1, b = 'hello world', c = 3, d = false, e = { zn : 'nested value' }
EDIT1:我有很长的关键属性,有10个属性我想要使用它们,直接没有任何点,我发现写了10个冗长的变量名无聊......
答案 0 :(得分:3)
就像在对象样式语法中包装所需的标识符一样简单
const {a, b, c, d, e} = {a: 1, b: 'hello world', c: 3, d: false, e: {zn: 'nested value'}};
a; // 1
b; // "hello world"
// etc
请注意,如果需要,您也可以进入数组或深入嵌套;
const [{f: {g}}] = [{f: {g: 1}}];
f; // undefined
g; // 1
此外,您可以在destructring
期间重命名标识符const {old: now} = {old: 1};
old; // undefined
now; // 1
答案 1 :(得分:1)
如果你想缩短并将它们分配给变量,一种方法是使用eval。
但话又说回来,为什么你需要将它们创建为变量?
const ob = { a : 1, b : 'hello world', c : 3, d : false, e : { zn : 'nested value' }};
var i = 0;
for (let key in ob)
{
eval(`var index${i} = "${ob[key]}"`);
i++;
}
console.log(index0);
console.log(index1);
console.log(index2);