如何在 JavaScript 中根据另一个变量值构造变量?我如何重新分配它的值并对该变量执行方法?

问题描述 投票:0回答:1

我希望能够基本上做到这一点

let x = 1;
let `arr${x}`;

if ((i = 0)) `arr${x}` = [];
`arr${x}`.push(words);
console.log(`arr${x}`);

我尝试过使用

eval()

let x = 1;
eval(`let arr${x}`);

if ((i = 0)) eval(`arr${x} = [];`);
eval(`arr${x}.push(${words})`);
console.log(eval(`arr${x}`));

但它给出了一个错误: 未捕获的引用错误:arr1 未定义 在这一行中: eval(

arr${x}.push(${words})
);

javascript arrays variables ecmascript-6 template-literals
1个回答
0
投票

你不能用变量来做到这一点,但你可以用对象属性很好地做到这一点。如果您创建它的对象恰好是全局对象(在浏览器中

window
),这也将创建一个全局变量:

let x = 1, words = "some words here", i = 0;
window[`arr${x}`] = undefined;

if (i===0) window[`arr${x}`] = [];
window[`arr${x}`].push(words);
console.log(window[`arr${x}`]);
console.log(arr1);

© www.soinside.com 2019 - 2024. All rights reserved.