javascript - Jquery如何使用多个where子句查询Json对象

标签 javascript jquery

如何从 json 对象查询多个列/属性? 我正在尝试this查询单列“类别”。如何同时查询Category和Id?

var data = {
  "items": [{
    "id": 1,
    "category": ["cat1","cat2"]
  }, {
    "id": 2,
    "category": ["cat1","cat3"]
  }, {
    "id": 3,
    "category": ["cat11","cat2"]
  }]
};

var returnedData = $.grep(data.items, function (element) {    
  return element.category.indexOf('cat1') >= 0;
});

console.log(returnedData);

最佳答案

不要使用较慢的 grep,而是使用普通的 js filter

var data = {
  "items": [{
    "id": 1,
    "category": ["cat1","cat2"]
  }, {
    "id": 2,
    "category": ["cat1","cat3"]
  }, {
    "id": 3,
    "category": ["cat11","cat2"]
  }]
};

const res = data.items.filter(e => e.category.indexOf('cat1') >= 0 && e.id === 1);
console.log(res);

关于javascript - Jquery如何使用多个where子句查询Json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200128/

相关文章:

javascript - 来自 javascript 值的 Html 标签属性值

javascript - Extjs 3.4 组合框 : how to preselect a record when the combobox is first loaded?

javascript - 迁移服务器后 HTML 网站停止正常工作

javascript - 可滚动内容中的 Bootstrap 工具提示

jQuery datepicker 日历 - 调用函数更新数据库

javascript - Node Express 中的并行异步路由器

javascript - catch block 中返回后函数继续执行

jquery - 删除 div 周围的 div

javascript - Ajax调用完成后执行函数

jQuery/Coffeescript - 如果有条件