编辑:原来这是Firebug错误地单步执行代码的情况,而我的错误是在其他地方。看到类似行为的同事建议定期清除浏览器缓存可以提供帮助。
我有这个简单的函数,它分割逗号分隔的字符串并使用标记来填充Dojo数据存储:
UpdateFileNames: function(names) {
var fileNames = names.split(",");
var fileNameData = [];
for (var i = 0; i < fileNames.length; i++) {
fileNameData.push({ name: fileNames[i], id: fileNames[i] });
}
this.fileListStore = new dojo.store.Memory({ data: fileNameData });
}
我在Firebug中踩过这段代码,无法相信我所看到的。在i == fileNames.length
之前一切都很开心,此时循环再次输入,fileNames[i]
无效。
这里发生了什么?
答案 0 :(得分:0)
你有没有尝试过少一个?
for (var i = 0; i < fileNames.length-1; i++) {
fileNameData.push({ name: fileNames[i], id: fileNames[i] });
}
如果可行,您需要查看如何生成列表(名称)。所以你最后不要得到空白元素。
答案 1 :(得分:0)
names
以逗号结尾吗?如果是,fileNames[fileNames.length - 1] == ''
。