如何用JavaScript编写循环

时间:2014-08-10 14:39:13

标签: javascript

我尝试制作这样的代码:

var code1 = a, code2 = b, code3 = c;
var x = 3;

for (y = 1; y <= x; y++) {
  //this part where i dont know about
  alert ();
}

那么如何让它警告code1,code2和code3?我的意思是这会警告值a,b和c。 我尝试使用alert("code"+y);alert(code+y);,但它不会这样做。

2 个答案:

答案 0 :(得分:9)

  

那么如何让它警告code1,code2和code3?我的意思是警告值a,b和c?

最好的方法是使用数组而不是离散的code1code2code3变量:

// (I assume a, b, and c have already been declared somewhere, or that your real
// code has literals?)
var codes = [a, b, c];
var y;

for (y = 0; y < codes.length; y++) {
  alert(codes[y]);
}

(请注意,我在另一个地方开始y。)

虽然可能使用全局变量执行code1code2code3事件,但应尽可能避免使用全局变量,并且几乎总是如此可能。 (也可以使用局部变量,但你必须使用eval或其表兄Function构造函数,并且避免eval 也是你应该避免的事情可能的,几乎总是可能的。:-))

或者,如果您发现自己想要在数组不太合理的情况下执行此操作,则可以改为使用对象:

var codes = {
    code1: a,
    code2: b,
    code3: c
};
var y;
for (y = 1; y <= 3; ++y) {
    alert(codes["code" + y]);
}

这是有效的,因为在JavaScript中,您可以使用点表示法和文字(obj.foo)或括号表示法和字符串(obj["foo"])来访问对象属性,在后一种情况下, string可以是任何表达式的结果。由于"code" + ycode1 y 1 codes["code" + y]"code1"会在codes上查找属性y({{1}时1是} {{1}})。

答案 1 :(得分:5)

使用Bracket notation

 alert(window["code"+y]);

我宁愿建议您使用像

这样的数组
var code = [1, 2, 3];
for (y = 0; y < code.length; y++) {
    alert(code[y]);
}