我有这段代码:
var arrayInstSaude = new Array();
$("input[name='uniSaudePrj']:checked").each(function(){
arrayInstSaude[$(this).val()]=$(this).val();
});
由于某种原因,它给了我一个混乱的数组。 例如:
如果我为5个元素执行此操作:
for (var i = 1; i <=arrayInstSaude.length; i++) {
alert(arrayInstSaude[i]);
}
我将有1,2,未定义,未定义,5,6,7,未定义,而预计有1,2,5,6,7。 有人知道发生了什么事吗? 谢谢!
答案 0 :(得分:3)
阵列总是连续的 长度只是最高指数加一。
听起来你想要一个碰巧有数字键(而且没有长度)的常规对象。
答案 1 :(得分:0)
替换
for (var i = 1; i <=arrayInstSaude.length; i++) {
alert(arrayInstSaude[i]);
}
与
for (var i in arrayInstSaude) {
alert(arrayInstSaude[i]);
}
请考虑阅读此discussion by olliej。
答案 2 :(得分:0)
我认为这段代码足够我的老板:
var arrayInstSaude = new Array();
var k=0;
$("input[name='uniSaudePrj']:checked").each(function(){
arrayInstSaude[k]=$(this).val();
k++;
});
重要的是要观察长度是最高指数加1。因此,要检索我们可以使用的元素
for(k=0;k<arrayInstSaude.length;k++){
alert(arrayInstSaude[k]);
}
因为我们知道最后一个元素是空的。