0

これを行って、単純なネストされた配列にアクセスしようとしています:

var currMenu = 1;
    while ( currMenu < menu.length ) {
        alert(currMenu);
        alert(menu[0][currMenu].text);
        currMenu++;
}

アラートが正しい値をスローしているにもかかわらず、firebug で次のエラーが発生しています: TypeError: menu[0][currMenu] is undefined.

何が起こっている?

ありがとう!

編集:申し訳ありませんが、急いでいました。ここに「メニュー」構造があります:

menu[0] = new Array();
menu[0][0] = new Menu(false, '', 15, 50, 20, '','' , 'navlink', 'navlink');
menu[0][1] = new Item('someText', '#', '', 100, 10, 1);

オブジェクトアイテム:

function Item(text, href, frame, length, spacing, target) {
    this.text = text;
    if (href == '#') {
        this.href = '#';
    } else if (href.indexOf('http') == 0) {
        this.href = href;
    } else this.href = href;
    this.frame = frame;
    this.length = length;
    this.spacing = spacing;
    this.target = target;
    // Reference to the object's style properties (set later).
    this.ref = null;
    this.showLoadingBar = false;
}
4

2 に答える 2

3

メニューが と一貫していると仮定すると[0][currMenu]、次のようにアクセスする必要があります。

while ( currMenu < menu[0].length ) {
    alert(currMenu);
    alert(menu[0][currMenu].text);
于 2012-09-20T14:02:35.450 に答える
1

「メニュー」配列の長さを見ていますが、その配列の0番目のインデックスで配列にアクセスしています(配列である場合とそうでない場合があります。コードからはわかりません。投稿しました)。

于 2012-09-20T14:02:46.323 に答える