我有一个数组定义为:
var subjectCache = [];
然后我有一些代码来构建它,这工作正常。
但是,如果我尝试通过索引引用数组,例如:
var x = subjectCache[0];
或者
var x = subjectCache[1];
我明白了undefined
。也subjectCache.length
始终为 0(零)。
如果我尝试通过它的键来引用它,例如:
var x = subjectCache['12345'];
有用。
这是正常的吗?我不应该通过它的索引来引用它吗?
我正在使用 Internet Explorer,如果它有所作为(它可能会:()
[编辑]
这是我用来构建数组的代码,虽然我真的不认为这是罪魁祸首。
这是来自网络服务调用的回调。这工作正常,并且正在填充数组。
var subjectCache = [];
var subjectCacheCount = 0;
function refreshSubjectsCallback(data) {
// update subjects
// loop through retrieved subjects and add to cache
for( i=0; i < data.length; i++ )
{
var subject = data[i];
var subjectid = subject.SubjectId;
subjectCache[subjectid] = subject;
subjectCacheCount += 1;
}
}
[/编辑]