简体   繁体   中英

Access array value inside a nested object in Javascript

I believe there are few types of JSON objects we work with in daily life:

Object with key value properties:

{
    "key" : "value",
    "key" : "value",    
    "key" : "value"
}

Object containing value as an array:

{                      
    "key" : "value",
    "key" : "value",        
    "key" : ["value1", "value2", "value3"], 
}

Object containing value as an array of objects:

{                 
    "key" : "value",
    "key" : "value",        
    "key" : [
        {"key" : "value"},
        {"key" : "value"},
        {"key" : "value"},
    ]
}

Object containing nested object with key-value properties where value is an array of objects:

{                    
    "key" : "value",
    "key" : "value",        
    "key1" : {
        "key11" : [  
            {"key" : "value"},  
            {"key" : "value"}       
        ],
        "key12" : [  
            {"key" : "value"},  
            {"key" : "value"}       
        ],
        "key13" : [  
            {"key" : "value"},  
            {"key" : "value"}           
        ]
    }
}

I have accessed key1 object and have an array with all they keys inside key1 object. That is,

arr = ["key11", "key12", key"13"];

I want to loop through all key-value properties inside key1 and also loop through "key11", "key12", ...

How to achieve that?

 !(function(){ //data always like this: // this just an array var json_array = [ {id:1, name:"alex", age: 11}, {id:2, name:"bob", age: 12}, {id:3, name:"nn", age: 13}, ]; // page total_page don't need loop, direct use it var json_object = { page: 1, total_page: 20, total_item: 300, list: [ {id:1, name:"alex", age: 11}, {id:2, name:"bob", age: 12}, {id:3, name:"nn", age: 13}, ] } // or for(var id in list_object){ console.log(list_object[id]['name']) } var list_object = { 1: {id:1, name:"alex", age: 11}, 2: {id:2, name:"bob", age: 12}, 3: {id:3, name:"nn", age: 13}, } // your data need some change var data = { "key" : "value", "key" : "value", "key1" : { "key11" : [ {"key" : "value"}, {"key" : "value"} ], "key12" : [ {"key" : "value"}, {"key" : "value"} ], "key13" : [ {"key" : "value"}, {"key" : "value"} ], } } // loop object for(var i in data['key1']){ // loop array data['key1'][i].map(function(item, i){ console.log(item['key']) }) } })()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM