当我尝试将元素推入javascript数组时,它不起作用。 这是我能想到的最简单的样本。 为什么这不起作用?
<!DOCTYPE html>
<html>
<body>
<script>
var i;
var mycars = new Array();
for(i=1;i<=10;i++){
mycars.push[ i.toString()+"-" ];
}
alert(mycars.join(""));
</script>
</body>
</html>
答案 0 :(得分:3)
push
是一个功能。您使用()
调用函数,而不是[]
:
mycars.push( i.toString()+"-" );
// here ---^ and here ----^
你可能感到困惑的地方是你可以在不使用push
的情况下添加数组,只需分配给一个数组元素,即使该元素还不存在。例如,你的循环可能如下所示:
for(i=1;i<=10;i++){
mycars[mycars.length] = i.toString()+"-";
}
在那里,因为我指的是数组元素(mycars[mycars.length]
),而不是调用函数,我使用[]
。
旁注:而不是var mycars = new Array();
,只需写var mycars = [];
即可。它做同样的事情,但更简洁,不容易产生副作用。