2017-06-13 84 views
0

我确信这里有一些简单的东西,我错过了。这个代码部分是在我的网站的客户端:功能不会超过for循环的末尾

function test(){ 
var insert; 
var insertArray = []; 
var arrayLength = document.getElementById("arrayLength").value; 
var length = parseInt(arrayLength) 
var o; 
var int; 
var insertID 
var i; 


for (i = 0; i<=length; i++){ 
    int = i.toString(); 
    insertID = "insertNumber" + int; 
    insert = document.getElementById(insertID).value; 
    insertArray.push(insert); 
}; 

o = JSON.stringify(insertArray); 

google.script.run.withSuccessHandler(successDisplay) 
    .mailroomDataEntry(o); 

} 

循环工作,因为它应该,但功能似乎并没有被超越进展循环的结束。没有数据被传回服务器端。

例如,如果我每一个循环的进行时间把window.alert(insertArray)里面的for循环我得到预期的结果(即一个警告框,直到最后的盒子具有完整阵列。

但是,如果我把相同window.alert for循环的结束后,我什么也没得到任何警告框,在所有

+0

它抛出任何控制台错误?你确定“长度”是你期望的值吗? – samanime

+0

我开始说这个长度正是我所期待的,因为它的长度是93,而且当前有93个项目......然后我意识到对于93个项目,我实际上需要92个长度值。将var length = parseInt(arrayLength)更改为var length = parseInt(arrayLength)-1并完美工作。 非常感谢您的帮助。我确定这很简单! –

+0

在你的变量定义下,在最后加上'try {'catch(e){console.log('有错误:'+ e.message)}'变量'insertArray'可能不是有效的JSON。但是,了解发生的事情的唯一方法就是进行一些调试。对于Chrome和Firefox,点击f12键打开浏览器控制台。 –

回答

0

感谢samanime我实现了可变length有不正确的值

更改:。

for (i = 0; i<=length; i++) 

for (i = 0; i<length; i++) 

和它工作得很好。谢谢samanime!

**按照Lars de Bruijn的评论进行编辑。谢谢Lars de Bruijn。