当我尝试将元素推入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>
最佳答案
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 = [];
。它具有相同的作用,但更简洁且不易产生副作用。