动态命名变量javascript

gha*_*hel 2 javascript variables jquery dynamic

我需要在循环中动态创建变量,但我不知道如何.我已经阅读了有关使用的信息,eval();但我发现它只是动态地改变变量中的值.

我需要这样的东西:

$(e).find('unidadeid').each(function () {
    countUnidades++;
    var Unidade[value inside countUnidades here] = $(this).text();
});
Run Code Online (Sandbox Code Playgroud)

请清楚你的步骤.我不是要求解决方案,而是要求帮助,作为一种学习方式.谢谢 ;)

T.J*_*der 8

您有两种选择:

  1. 使用数组:

    var unidades = [];
    $(e).find('unidadeid').each(function () {
        unidades.push($(this).text());
    });
    
    Run Code Online (Sandbox Code Playgroud)

    要么

    var unidades = $(e).find('unidadeid').map(function () {
        return $(this).text();
    }).get();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您确实想要的名称不仅仅是数字,请使用对象和括号表示法:

    var unidades = {}, countUnidades = 0;
    $(e).find('unidadeid').each(function () {
        countUnidades++
        unidades['Unidade' + countUnidades] = $(this).text();
    });
    
    Run Code Online (Sandbox Code Playgroud)

    创建对象,unidades,具有相似特性Unidade0,Unidade1等等.注意,each接收索引,所以你不需要countUnidades,除非你想要别的东西:

    var unidades = {};
    $(e).find('unidadeid').each(function (index) {
        unidades['Unidade' + index] = $(this).text();
    });
    
    Run Code Online (Sandbox Code Playgroud)


Vis*_*ioN 5

你总是可以使用数组:

var Unidade = [],
    countUnidades = 0;

$(e).find("unidadeid").each(function(i) {
    Unidade[countUnidades++] = $(this).text();

    // ... or Unidade.push($(this).text());
    // ... or Unidade[i] = $(this).text();
});
Run Code Online (Sandbox Code Playgroud)

不要忘记DOM元素应始终具有唯一 ID,因此each这里不需要迭代,如果unidadeid引用某个元素的ID.