如何使用JQuery解析对象数组

问题描述 投票:0回答:1

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);
});

编辑:

这是检查员向我展示的内容:

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

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

jquery arrays
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.