如何使用JQuery解析对象数组

时间:2017-12-24 16:17:59

标签: jquery arrays

JQuery不是我的强项,但这似乎非常简单,但似乎无法解析这些对象。有人能告诉我哪里出错了吗?

我有一个如下所示的数组:

{"occupation": "Boxer", "id": 2},{"occupation": "Helper", "id": 3}

我的最终结果需要如下所示:(一组id):

[ 2, 3 ]

我尝试使用$.each迭代data.occupations数组,但是我得到了一个TypeError。有人可以告诉我为什么这不起作用?

这是我正在使用的循环:

$.each(data.occupations, function (name, value) {
  console.log(name);
});

修改

这是Inspector中向我展示的内容:

Object {
  name: "Alex Barma",
  occupations: "{"occupation": "Boxer", "occup…", 6 more…
}

我刚注意到occupations不是数组。我是否需要创建一个数组并将对象推入其中然后才能循环它们?

1 个答案:

答案 0 :(得分:0)

而不是声明一个空数组并使用$.each来注入项目,而只需使用jQuery的$.map函数,例如。

var ids = $.map(data.occupations, function(o) {
    return o.id;
});

当然,假设职业是将数组存储在data对象中的键。

请参阅下面的概念验证代码:



$(function() {
  var data = {
    occupations: [{
        "occupation": "Boxer",
        "id": 2
      },
      {
        "occupation": "Helper",
        "id": 3
      }
    ]
  };

  var ids = $.map(data.occupations, function(o) {
    return o.id;
  });
  
  console.log(ids);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;