Javascript Nested-Array, выдавая 'TypeError' - Ошибка - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь создать вложенный массив в 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]

Я также попытался заменить цикл while на:

for( siteCount; siteCount <= keyPair; siteCount++){
    domains[siteCount] =new Array();
    for(valueCount;valueCount < keyPair; valueCount++){
        domains[siteCount][valueCount] = keyPair[siteCount];
    }
}

Из чтения в Интернете я понимаю, что означает сообщение TypeError «Представляет ошибку, когда значение не соответствует ожидаемому типу».Хотя я не могу понять, почему это происходит в этом случае, я просто не вижу, в чем проблема.

Спасибо за любую помощь, Вез.

1 Ответ

0 голосов
/ 28 февраля 2012

Здесь:

keyPair.sort(sorter());

Вы должны передавать функцию, а не оценивать ее. Вот так:

keyPair.sort(sorter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...