0

以下は、data という名前のネストされたオブジェクトです。ここでは、すべてのオブジェクトのキーと値を表示したいと考えています。そのために、以下のコードを作成しました。

var data = {
       response: {
           deals: [
                    {
                    id: 1,
                    color: {
                          id: 608290
                       }
                    }
                 ]
              }
          };

以下のコードを使用して、キーであるオブジェクト ディールの「id」にアクセスし、その値は 1 ですが、独自のキーと値、つまり id:608290 を持っているため、色の [object object ] を提供します。私も展示したいです。コードを変更して、ディール内のカラー オブジェクトのキーと値も取得してください。

for(var i = 0; i <= data.response.deals.length-1;i++){
    $.each( meta.response.deals[i], function( key, value ) {
        alert( key + ": " + value );
});
4

5 に答える 5

1

このコードは、オブジェクトの配列を介して実行されます。ループを使用すると、取引でやりたいことが何でもできます。

var data = {
    response: {
        deals: [{
            id: 1,
            color: { id: 608290 }
        },
        {   id: 2,
            color: { id: 123456 }
        },
        {   id: 9001,
            color: { id: 456789 }
        }]
    }
};

for (var i in data.response.deals) {
    var obj = data.response.deals[i];
    console.log(obj);

    // obj.id       => current ID
    // obj.color.id => color's ID
}

ログ:

{"color": {"id": 608290}, "id": 1}
{"color": {"id": 123456}, "id": 2}
{"color": {"id": 456789}, "id": 9001}

実際の例: http://jsbin.com/ipeful/4

于 2013-05-16T10:17:22.267 に答える
0
var data = { metal: { deals: [ { id: 1, color: { id: 608290 } } ] } };

$.each(metal.deals,function(index,item){

 $.each(item,function(itemIndex,value)
{
//process your sub items


});
});

ありがとう、

シヴァ

于 2013-05-16T10:05:56.740 に答える
0

これを試して

        $.each(data.response.deals, function(index, item)
        {
            //item is the object you have in the array
            //item.id ==> The id value in the object
            //item.color.id ==> The id value in the color object
        });
于 2013-05-16T10:09:04.250 に答える
0

次のような再帰関数を使用できます。

function deepTraverse(obj, indent) {
    var str = "";
    for (var key in obj) {
        var newIndent = indent + "&nbsp;&nbsp;&nbsp;&nbsp;";     // <-- for formatting only
        str += newIndent + key + ": ";
        str += (typeof obj[key] != "object")
                ? obj[key] + "<br />"
                : "<br />" + deepTraverse(obj[key], newIndent);
        if (typeof obj[key] != "object") {
            alert(key + ": " + obj[key]);
        }
    }
    return str;
}

この短いデモも参照してください。

于 2013-05-16T10:39:54.703 に答える