在jQuery / Javascript中迭代嵌套数组

时间:2015-01-29 22:30:06

标签: javascript jquery arrays

在我的后端,我发送了一个data.ent JSON,它有一个嵌套数组,如图所示:

enter image description here

如何迭代此结果?我试过了:

$.each(data.ent, function (index, value) { 
    console.log(value.modeloMarcaProducto);
} 

但是得到undefined,我想我在这里错过了一些东西,但又是什么?哪个是迭代trhough data.ent的正确方法?有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

看起来你有一个数组,其中数组中的每个元素本身就是一个对象数组。如果这就是你所拥有的,那么你必须迭代两个级别的数组,包括顶级数组和每个嵌套数组,并且内部迭代将从内部数组获取每个对象,然后您可以引用您的属性像这样:

$.each(data.ent, function (index, value) { 
    $.each(value, function (i, v) {
        console.log(v.modeloMarcaProducto);
    }
} 

答案 1 :(得分:0)

在你的回调中,value是一个对象数组(它似乎总是包含一个只包含一个对象的数组),所以你可以引用value[0][0]

$.each(data.ent, function (index, value) { 
 console.log(value[0][0].modeloMarcaProducto);
} 

或者,您必须递归

var vals = [];
(function recurseKeyValue( obj, key ){
 for( all in obj )
 {
    if( all == key ){
     console.log(obj[all]);
     vals.push(obj[all]);
     continue;
    }
    if( typeof obj[all] == "object" && obj[all]!= null ){
        recurseKeyValue( obj[all], key );
    }
 }
})(data.ent,modeloMarcaProducto)