簡體   English   中英

javascript得到子陣列長度

[英]javascript get subarray length

我想知道是否有辦法獲得二級數組的長度,例如:

var arr = new Array();
arr[0] = new Array();

arr[0][0] = 'a';
arr[0][1] = 'a';
arr[0][2] = 'a';

我嘗試過這個,但沒有成功:

arr[0].length;

干杯!

編輯

邪惡的代碼如下。

這是我用來填充數組的函數,它按預期工作:

function input_text(action, id) {
    if (action == 'add') {
        var i = info.length;
        if (i != 0) i++;
        info[i] = new Array();
        info[i]['type'] = 'input';
        info[i]['subtype'] = 'text';
        info[i]['nome'] = $('#input_text_form input[name="input_text_nome"]').val();
        info[i]['name'] = $('#input_text_form input[name="input_text_name"]').val();
        info[i]['id'] = $('#input_text_form input[name="input_text_id"]').val();
        info[i]['maxlenght'] = $('#input_text_form input[name="input_maxlenght"]').val();
        info[i]['default'] = $('#input_text_form input[name="input_text_default"]').val();
        info[i]['js'] = $('#input_text_form input[name="input_text_js"]').val();
    }
}

..這是一個從數組中構建JSON字符串的函數。 您可能會注意到我多次計算子級數組長度,以防止字符串結束錯誤,例如,}

function toJSON () {
    var fll = info.length;
    var sll = 0;
    var tll = 0;
    var i;
    var x;
    var z;
    var w;
    var b;
    json = '{';
    for (i in info) {
        json += '"'+i+'":{';
        sll = info[i].length;
        alert(sll);
        z = 0;
        for (x in info[i]) {
            if ($.isArray(info[i][x]))  {
                json += '"'+x+'":{';
                tll = info[i][x].length;
                w = 0;
                for (b in info[i][x]) {
                    tll == w ? json += '"'+b+'" : "'+info[i][x][b]+'"' : json += '"'+b+'" : "'+info[i][x][b]+'",';
                    w++;
                }
                sll == z ? json += '}' : json += '},';
            } else {
                sll == z ? json += '"'+x+'" : "'+info[i][x]+'"' : json += '"'+x+'" : "'+info[i][x]+'",';
            }
            z++;
        }
        fll == i ? json += '}' : json += '},';
    }

    json += '}';
}

每次我打印任何fll,sll和tll變量的值時,它都給我零。

您實際上是使用字符串索引創建對象。 如果它是真正的數組,則只能獲得長度。

arr[0] = [];
arr[0][0] = 134;
arr[0][1] = 264;

arr[0].length; // will work

arr[1] = {};
arr[1]['str1'] = 134;
arr[1]['str2'] = 256;

arr[1].length; // will not work

有關詳細信息,請參閱此問題: JavaScript對象的長度

你錯了嗎? 嘗試:

arr[0].length;

這個對我有用:

var arr = new Array();
arr[0] = new Array();

arr[0][0] = 'a';
arr[0][1] = 'a';
arr[0][2] = 'a';

console.log(arr[0].length);

結果:

3

在這里自己檢查一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM