Javascript嵌套数组抛出';类型错误';-错误

Javascript嵌套数组抛出';类型错误';-错误,javascript,arrays,local-storage,multidimensional-array,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))) {

我试图在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]; 
我从网上阅读了解到TypeError消息“当值不是预期类型时表示错误”的含义,尽管我不明白为什么会在这种情况下发生 我就是看不出有什么问题

谢谢你的帮助, Wez.

这里:

keyPair.sort(sorter());
您应该传递函数,而不是计算函数。像这样:

keyPair.sort(sorter);

我曾尝试将您的代码放入JSFIDLE,它会给出各种各样的错误,当您尝试访问window.localStorage.key(I)和I>时,它会爆炸,而不是存储中的项,我很快将try/catch循环,以进一步测试,没有分类器函数,因此注释了排序,然后我选择新数组[keyPair.length]不是构造函数,你能用一个JSFIDLE来说明你的缺点吗
keyPair.sort(sorter);