我的部分代码和'for'循环遇到了一个奇怪的问题。这是奇怪的代码片段:
var length_value = entry_array.length;
console.log(length_value);
for(var k = 0; k <= length_value; k++){
j = k + 1;
$.each(entry_array[k], function(key, value){
post_data = post_data + key + j + '=' + value + '&';
});
}
当我运行代码时,它会将3
记录到控制台(这是entry_array
数组变量中的元素数。当它运行for
循环时,它会给出我Cannot read property 'length' of undefined
。我已成功运行for循环,为length_value
换出3
并且它有效。我试过这个:
length_value = entry_array.length; //Thinking it had something to do with 'scope'
而且:
var length_value = parseInt(entry_array.length) //Thinking it had something to do with the variable type
既不奏效。因此for循环语法是正确的,entry_array.length
有一个值,但它不能一起工作。这里发生了什么?谢谢你的帮助!
答案 0 :(得分:3)
基于0的数组应该从0到< length
建立索引,而不是<= length
var length_value = entry_array.length;
console.log(length_value);
for(var k = 0; k < length_value; k++){
j = k + 1;
$.each(entry_array[k], function(key, value){
post_data = post_data + key + j + '=' + value + '&';
});
}
e.g。如果你有3个元素,你想要索引0,1和&amp; 2. <=
将给出0,1,2和2。 3
如果还有其他问题,您需要显示数组内容的示例