4

is it possible to add i to a var inside a for-loop? in wrong syntax it would look like the code below

for(i=1; i<=countProjects; i++){

    var test + i = $(otherVar).something();

};

Thanks!

Henrik Andersson
  • 45,354
  • 16
  • 98
  • 92
Matthias O.
  • 192
  • 1
  • 2
  • 13

2 Answers2

7

It would be best to use an array for this:

var test = [];

for (i = 1; i <= countProjects; i++) {
    test[i] = $(otherVar).something();
};

Then you could access the values like this:

console.log(test[1]);
console.log(test[2]);
etc...

If you have really good reason to have named variables for each value, you can create them like this:

for (i = 1; i <= countProjects; i++) {
    window["test" + i] = $(otherVar).something();
};

console.log(test1);
Joel Lundberg
  • 916
  • 5
  • 6
  • `window["test"...]` will only be accessible in global scope, if no scope indication is used on the trace (`console.log(window.test1);`. You shouldn't assume it's always global scope, IMHO. – joncys Mar 26 '12 at 10:52
5

As Mat stated, you should be using arrays for this type of functionality:

var projects = [];
for (var i = 0; i <= countProjects; i++) {
    projects.push($(otherVar).something());
}

You could craft variable names, using object["varname"] syntax. But it's _generally_ bad practice:

var varName;
for (var i = 0; i <= countProjects; i++) {
    varName = "test" + i.toString();
    this[varName] = $(otherVar).something();
}
console.log(test1);
Community
  • 1
  • 1
joncys
  • 1,300
  • 11
  • 25