如何破坏在JavaScript中的所有属性为本地设

问题描述:

说,我有一个目标:如何破坏在JavaScript中的所有属性为本地设

const ob = { a : 1, b : 'hello world', c : 3, d : false, e : { zn : 'nested value' }}; 

我想一个衬垫,最好使用自毁抢在局部范围内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

这只是一个想法锻炼或者你真正需要使用它们的变量? –

+0

是的,我真的想要使用这些,ob来自导入一些xyz实用程序文件 – codeofnode

+0

为什么不从ob创建一个新的对象呢?用缩短的键名称? –

这是就这么简单的一个对象的风格语法

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 
+0

我有长键名属性,并有10个属性,我想直接使用没有任何点..写10是有点无聊... – codeofnode

+3

你将不得不写出标识符名称的地方(不要使用'用',你将永远无法调试它)。如果键入longhand太多,我建议您查看支持tab完成的IDE。其他人在5年内了解的代码比短标识符名称更重要。 –

+0

我真的很欣赏这样的建议..所以+1,但我离开那不被接受..所以在未来有些人可能会尝试带来魔法。欢呼声 – codeofnode

那么,如果你想缩短,并将其分配给一个变量时重命名标识符,一种方法是使用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);