javascript - 如何使用 jquery 访问 JSON 嵌套数组

标签 javascript jquery arrays json

我正在尝试访问下拉菜单的所有品牌和值 但我不能用这种方式。

<select id="secim">
</select>

var data = [
        {
          "products": "Cars",
          "brands_values" : [
            {"brand":"fiat","value":1},
            {"brand":"bmw","value":2}
          ]
      }
      ];

$.each(data, function(i, item) {
        $('#secim').append($('<option>', {
          value: item.brands_values.value,
          text: item.brands_values.brand
        }));
      });

我该怎么办?谢谢

最佳答案

只需为品牌添加另一个循环:

var data = [
  {
    "products": "Cars",
    "brands_values" : [
      {"brand":"fiat","value":1},
      {"brand":"bmw","value":2}
    ]
}];

$.each(data, function(i, item) {
  if (item.brands_values) {
      item.brands_values.forEach(brands => {
        $('#secim').append($('<option>', {
          value: brands.value,
          text: brands.brand
        }));
      });
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="secim">
</select>

注意:在这种情况下,您可能希望使用 native .forEach,因为它就足够了。我在过去遇到过 jQuery.each() 的性能问题,所以我尽可能避免它(check this):

data.forEach(item => {
    if (item.brands_values) {
        item.brands_values.forEach(brands => {
            $('#secim').append($('<option>', {
                value: brands.value,
                text: brands.brand
            }));
        });
    }
});

关于javascript - 如何使用 jquery 访问 JSON 嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45733714/

相关文章:

javascript - 使用路线将 Prop 传递给 child

javascript - jQuery 延迟对象集中式全局错误处理程序

python - 如何将 uint32_t 转换为无符号字符数组?

arrays - 转换字符串?

java - Java中的数组声明

javascript - 为 Outlook 生成 .msg 文件

javascript - 如何使用 Jquery/javascript 将预填充输入字段设置为事件状态?

javascript - NodeJS中如何按一定顺序执行代码?

javascript - 使用 jQuery 的自定义搜索当前不工作

javascript - 使用 jQuery 添加元素后刷新 css