javascript - 使用 jquery grep 过滤具有值数组的 json 对象

标签 javascript jquery json

我需要使用 jQuery grep 过滤 JSON 结果。我的 JSON 结果如下所示:

 var data = { "items":[
  {
      "Name":           "Name 1",
      "City":      "city1"
  },
  {         
      "Name":           "Name 2",
      "City":      "city2"
  },
  {
      "Name":       "Name 3",
      "City":      "cat1"
  }
]}

使用 Name 示例数组过滤此 JSON:

var Name= ["Name 1","Name 2"];

最佳答案

使用 jQuery.grep() 过滤项目数组

var data = {
  "items": [{
    "Name": "Name 1",
    "City": "city1"
  }, {
    "Name": "Name 2",
    "City": "city2"
  }, {
    "Name": "Name 3",
    "City": "cat1"
  }]
}
var name = ["Name 1", "Name 2"];

var res = $.grep(data.items, function(v) {
  return name.indexOf(v.Name) > -1;
});

document.write('<pre>' + JSON.stringify(res, 0, 3) + '</pre>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


或者用 filter()

var data = {
  "items": [{
    "Name": "Name 1",
    "City": "city1"
  }, {
    "Name": "Name 2",
    "City": "city2"
  }, {
    "Name": "Name 3",
    "City": "cat1"
  }]
}
var name = ["Name 1", "Name 2"];

var res = data.items.filter(function(v) {
  return name.indexOf(v.Name) > -1;
});

document.write('<pre>' + JSON.stringify(res, 0, 3) + '</pre>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

关于javascript - 使用 jquery grep 过滤具有值数组的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37108833/

相关文章:

javascript - 如何使用 JW Player 在所有浏览器/设备中播放视频?

javascript - 如何将焦点处理程序附加到表格单元格(TD 元素)?

jquery - anchor 平滑滚动在 WordPress 网站上不起作用

Jquery新窗口点击事件

javascript - 如何在加载 JSON 之前停止 Angular 执行?

ajax - 如何从谷歌翻译中获取和解析 json 答案

javascript - Minicart.js - 商品已添加到购物车,但购物车未显示

javascript如何动态地将子字典附加到父字典

javascript - 搜索结果中的动态链接

php - Ajax 响应中的杂散字符?