代码之家  ›  专栏  ›  技术社区  ›  huz3y

如何在JavaScript中基于另一个变量值构建变量?如何重新分配它的值并对该变量执行方法?复制

  •  0
  • huz3y  · 技术社区  · 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}) );

    1 回复  |  直到 1 年前
        1
  •  1
  •   connexo    1 年前

    你不能用变量来实现这一点,但你可以很好地用对象属性来实现。如果创建它的对象恰好是全局对象( 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);