我有以下代码:

var arrayInstSaude = new Array();
$("input[name='uniSaudePrj']:checked").each(function(){
    arrayInstSaude[$(this).val()]=$(this).val();
});


由于某种原因,它给了我一个混乱的数组。
范例:


如果我检查1个元素值eq1。它给我的arrayInstSaude长度等于2。
如果我检查2个元素的值eq2。它给我的arrayInstSaude长度等于3。
如果我检查3个元素的值eq 5,它使我的arrayInstSaude长度等于6。
如果我检查4个元素的值eq 6,它使我的arrayInstSaude长度等于7。
如果我检查5个元素的值eq 7,它使我的arrayInstSaude长度等于8。


如果我对5个元素这样做:

for (var i = 1; i <=arrayInstSaude.length; i++) {
     alert(arrayInstSaude[i]);
}


我将有1,2,undefined,undefined,5,6,7,undefined,而预期会有1,2,5,6,7。
有人知道发生了什么吗?
谢谢!

最佳答案

数组始终是连续的。
长度只是最高索引加一。

听起来您想要一个恰好具有数字键(且没有长度)的常规对象。

09-25 19:22