我想在JavaScript中按下链接时增加数组中的值
我使用以下代码
<script type="text/javascript">
var i=0;
var numbers = new Array();
function go(val){
numbers[i]=val;
i++;
alert(numbers[i]);
}
</script>
Run Code Online (Sandbox Code Playgroud)
像这样称为函数
<a href='javascript:go(1)' </a>
Run Code Online (Sandbox Code Playgroud)
但总是警报提示我'未定义'
警报是正确的 - 在您发出警报之前,您会增加警报i.您正在查看刚刚输入的元素之后的下一个元素.
在调用该方法一次后,您的数组如下所示:
numbers[0] = 1;
numbers[1] = undefined;
Run Code Online (Sandbox Code Playgroud)
和i == 1.
再次调用它之后,数组看起来像:
numbers[0] = 1;
numbers[1] = 1;
numbers[2] = undefined;
Run Code Online (Sandbox Code Playgroud)
和i == 2.
希望您可以看到此方法始终会发出警报undefined
那是因为你增加"我"
i++;
Run Code Online (Sandbox Code Playgroud)
就在你发出警报之前!因此,"i"将指向要使用的下一个阵列插槽,而不是您刚刚填充的插槽.
您可以将警报更改为使用"i-1"
alert(numbers[i - 1]);
Run Code Online (Sandbox Code Playgroud)