迭代数组以获取值。

时间:2015-07-21 17:50:34

标签: javascript php jquery

我有一个以JSON格式返回结果的字段。

$('#selectCategory').on('change', function () {
    var optionSelect = $(this).val();
    console.log('The option selected is: ' + optionSelect);
    $.post("{{path('playlist_category') }}", {category: optionSelect}, 
         function (filterContent) {
             console.log(filterContent);
         }, 'json');
});

filterContent函数返回与此类似的结果:

console result

但我只想将相关信息留在元素的'id'中。

如果我执行以下操作,控制台将返回如下内容:

function (filterContent) {
    for (var content in filterContent.category_result) {
        for (var data in filterContent.category_result[content]) {
            var result = filterContent.category_result[content][data];
                console.log(result);
        }
    }
}, 'json');

Console result 2

如何才能获得数据'id'?

谢谢!

4 个答案:

答案 0 :(得分:1)

请改用此代码:

$.post("{{path('playlist_category') }}", {category: optionSelect}, 
   function (filterContent) {
      for(var i = 0; i < filterContent.category_result.length; i++) {
         console.log('id', filterContent.category_result[i]['id']);
      }
   }
}, 'json');

答案 1 :(得分:1)

不需要像这样使用内部for-in循环

function (filterContent) {
    for (var content in filterContent.category_result) {
        console.log(filterContent.category_result[content].id)

    }
}, 'json');

答案 2 :(得分:0)

尝试将结果作为JSON。我正在尝试调整你的函数(filterContent)

function (filterContent) {
var result={};
    for (var content in filterContent.category_result) {
        for (var data in filterContent.category_result[content]) {
            result.id = filterContent.category_result[content][id];
            result.data= filterContent.category_result[content][data];
                console.log(result);
        }
    }
}, 'json');

答案 3 :(得分:0)

你可以试试这个来得到一组id:

function (filterContent) {
  var ids =  $(filterContent.category_result).map(function() { return this.id }); 
}