Javascript嵌套数组抛出'TypeError' - 错误

时间:2012-02-27 19:54:06

标签: javascript arrays local-storage multidimensional-array

我正在尝试在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。

1 个答案:

答案 0 :(得分:0)

下面:

keyPair.sort(sorter());

您应该传递函数,而不是评估函数。像这样:

keyPair.sort(sorter);