2014-09-19 61 views
-3

我想通过功能如何使javascript函数

function sss() 
{ 
    for (i=1;i<=3;i++){ 

     bbb(a.i) 

    } 
} 

sss(); 

有打电话像BBB(A1),BBB(A2),BBB(A3)...... 的JavaScript函数中的级联在上面的代码中必须有很多错误。什么应该是正确的语法?特别在bbb(a.i)中,即将'a'与变量'i'连接起来。

+1

JavaScript的字符串连接运算符是'+'。 – 2014-09-19 13:42:59

+1

'a + i'将在变量'a'和'i'之间进行字符串连接。你在问什么? – 2014-09-19 13:43:00

+0

具有动态命名变量是一个标志,您应该使用数组或对象。 – 2014-09-19 13:46:48

回答

0

如果我理解你的权利,没有任何语法错误,但也有其他几个:

function sss() 
{ 
    var i; // <=== Declare `i` 
    for (i=1;i<=3;i++){ 

     bbb(a[i]); // <=== Use [i] to access `a[1]`, `a[2]`, etc. 

    } 
} 

sss(); 

注意,如果a是正常的,非稀疏矩阵,你可能想:

for (i=0;i<=a.length;i++){ 

在JavaScript中,你可以使用点语法与文字(obj.foo)访问属性,或者括号什么技术上强制转换为字符串(obj["foo"])语法。第二个语法就是我们通常使用的阵列,使用a[0]a[1]等(这是技术上理论上裹挟a["0"]a["1"]等,因为regular JavaScript arrays aren't really arrays at all

+0

你也许想提一下“off by 1”thingy) – thefourtheye 2014-09-19 13:44:11

+0

......假设通过索引访问数组是一个问题,但考虑到“将'a'与变量'i'连接起来”问题,我不太确定。 – 2014-09-19 13:45:01

+0

@thefourtheye:假设'a'是一个数组...... – 2014-09-19 13:46:44

1

我不是100 %肯定你的意图,但重新读你的问题几次,我想你想建立一个字符串的迭代器变量i传递到bbb()。如果是这样,你想要这样的:

function sss() { 
    for (var i = 1; i <= 3; i++) { 
     bbb("a" + i); 
    } 
} 

这将有效地做到:

bbb("a1"); 
bbb("a2"); 
bbb("a3"); 

还要注意i = 1出台前的var - 你绝对不希望意外创建全局循环变量。

+0

雅,这是我的意图。 – 2014-09-19 14:19:01