我正在尝试在Javascript中创建一个嵌套数组,但无论我试图从这个数组中获取某些东西,我都会收到错误'TypeError'。以下是代码段:
var domains =new Array();
var keyPair =new Array();
function displayStorage(){
var i = 0;
var sKey;
while ((sKey = window.localStorage.key(i))) {
keyPair[i] = localStorage.key(i) + localStorage.getItem(sKey);
i++;
}
keyPair.sort(sorter());
siteCount = 0;
valueCount = 0;
while(siteCount < keyPair.length / 4) {
var offset = keyPair[siteCount].length - 1;
domains[siteCount] =new Array[keyPair.length];
//keyPair[siteCount].substr(0,offset) keyPair[siteCount].substr(-1);
domains[siteCount][valueCount] = keyPair[valueCount];
valueCount++;
if(valueCount >= 4){
valueCount = 0;
}
siteCount++;
}
}
document.getElementById('testdiv').innerHTML = domains[0][1];
我也试过没有if声明。以及交换
domains[siteCount][valueCount]
代表domains[siteCount,valueCount]
我也尝试用for for循环替换while:
for( siteCount; siteCount <= keyPair; siteCount++){
domains[siteCount] =new Array();
for(valueCount;valueCount < keyPair; valueCount++){
domains[siteCount][valueCount] = keyPair[siteCount];
}
}
通过在网上阅读,我理解TypeError消息的含义是'当值不是预期类型时表示错误'。虽然我不明白为什么会在这个场合发生 我只是看不出有什么问题。
感谢您的帮助, WEZ。
答案 0 :(得分:0)
下面:
keyPair.sort(sorter());
您应该传递函数,而不是评估函数。像这样:
keyPair.sort(sorter);