【问题标题】:initialize variable repeatedly using for loop in javascript在javascript中使用for循环重复初始化变量
【发布时间】:2014-01-19 09:24:07
【问题描述】:

我的问题是我是否可以重复初始化变量(只更改它们之后的数字)这是我的代码

for(i = truStorage.getItem('elementCount'); i>0; i--) {
var obj = truStorage.getItem("element_" + i);
var [obj_+i] =  element(erd.Entity , obj.posx, obj.posy, obj.text );}

};

基本上我只想初始化一个像

这样的变量
something_i = "";

结果会是这样的

var element_1 = element(erd.Entity, 100, 200, "Employee");
var element_2 = element(erd.Entity, 100, 400, "Salesman");
var element_3 = element(erd.WeakEntity, 530, 200, "Wage");
var element_4 = element(erd.IdentifyingRelationship, 350, 190, "gets paid");

我不是试图将变量用作存储,而是为函数实例化一个元素。

【问题讨论】:

  • 你为什么不用Array?!?
  • 你想完成什么?这听起来是个坏主意,也许我们可以帮你出主意:)
  • 每次遇到这样的情况,只需将所有对象推入一个数组并对其进行迭代。
  • 我已经编辑了代码.. 希望它能更好地解释它

标签: javascript variables loops for-loop initialization


【解决方案1】:

这是一个数组的工作。

var something = [];
var somethings = 5;

for(var i = 0; i < somethings; i++) {
    something[i] = "";
} 

您现在应该可以像这样访问这五个值:

console.log(something[0])
console.log(something[1])
console.log(something[2])
console.log(something[3])
console.log(something[4])

请注意,您使用 0 来访问第一个元素。就是这样,因为 JavaScript 数组是从零开始的。

【讨论】:

    【解决方案2】:

    这是使用数组的最佳场景:

    var counter=0,something = new Array();
    for(i = truStorage.getItem('elementCount'); i>0; i--) {
       something[counter] =  truStorage.getItem("element_" + i).text;
       counter++;
      }
    };
    

    【讨论】:

      【解决方案3】:

      试试:

      for(var i=1; i<=4; i++) {
          this["something_" + i] = i;
      }
      
      console.log(something_1); //outputs 1;
      console.log(something_2); //outputs 2;
      console.log(something_3); //outputs 3;
      console.log(something_4); //outputs 4;
      

      注意:使用数组会更快!

      【讨论】:

      • 1:使用窗口,而不是 this(它可以随范围而变化,并且在严格模式下未在根级别定义)和 2:其他问题为 问题提供了更好的答案 (如果不是问题);你至少应该注意这一点。
      猜你喜欢
      • 2012-01-02
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 1970-01-01
      相关资源
      最近更新 更多