簡體   English   中英

遍歷帶有嵌套數組的JSON對象

[英]Iterate through a JSON Object with nested arrays

如何使用兩個或多個嵌套數組迭代以下JSON對象? 此處的輸出未使用key:value返回。 這只是價值觀。

{"Obj":
    ["array 0",
        ["nested array 1"],
        ["nested array 2"]
    ]
};

我可以使用Obj[1]查看每個數組,但輸出仍為JSON: {"Obj":["nested array 1"]} 我需要遍歷所有這些對象以獲得每個嵌套數組中的文本以放入textarea ...

救命!

謝謝大家!

您可以使用.each()遍歷每個級別的數組。 在第一層,您可以使用$.type()來確定值的類型,以幫助決定是輸出該值還是對其進行進一步迭代。

var data = {"Obj":
    ["array 0",
        ["nested array 1"],
        ["nested array 2"]
    ]
};

$.each( data.Obj, function(i,v) {
    if( $.type( v ) == 'string' ) {
        // assign v to text
    } else {
        $.each( v, function(index, value) {
            //assign value to text
        });
    }
});

對於非jQuery解決方案,請嘗試Obj[i][j] 以下代碼向控制台輸出“嵌套數組1”,然后輸出“嵌套數組2”。

for (var i = 0; i < Obj.length; i++) {
    for (var j = 0; j < Obj[i].length; j++) {
        console.log(Obj[i][j]);
    }
}

遍歷對象或數組的一種簡單方法是使用jQuery.each()

通用迭代器函數,可用於無縫迭代對象和數組。 具有長度屬性的數組和類似數組的對象(例如函數的arguments對象)通過從0到length-1的數字索引進行迭代。 其他對象通過其命名屬性進行迭代。

例:

var obj = {
  "flammable": "inflammable",
  "duh": "no duh"
};
$.each( obj, function( key, value ) {
  alert( key + ": " + value );
});

如果嵌套數組的數量未知,則可能需要創建一個使用嵌套值調用自身的遞歸函數。

暫無
暫無

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

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