如何破坏在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变量名无聊..
这是就这么简单的一个对象的风格语法
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
我有长键名属性,并有10个属性,我想直接使用没有任何点..写10是有点无聊... – codeofnode
你将不得不写出标识符名称的地方(不要使用'用',你将永远无法调试它)。如果键入longhand太多,我建议您查看支持tab完成的IDE。其他人在5年内了解的代码比短标识符名称更重要。 –
我真的很欣赏这样的建议..所以+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);
这只是一个想法锻炼或者你真正需要使用它们的变量? –
是的,我真的想要使用这些,ob来自导入一些xyz实用程序文件 – codeofnode
为什么不从ob创建一个新的对象呢?用缩短的键名称? –