我有一个清单

var jsonList = [
   {
      "id": "one",
      "pId": "nosearch",
      "cId": "searchc"
   },
   {
      "id": "two",
      "pId": "product1",
      "cId": "searchc"
   },
   {
      "id": "three",
      "pId": "product2",
      "tId": "searcht"
   }
]


我想获取包含给定文本的所有项目的列表。
例如,如果我搜索“搜索”,它将返回所有项目;如果我搜索产品,则应返回第二和第三项目。

任何像search(jsonList,searchText)的功能都可以实现这一点?

最佳答案

这样尝试

var jsonList = [{
    "id": "one",
    "pId": "nosearch",
    "cId": "searchc"
}, {
    "id": "two",
    "pId": "product1",
    "cId": "searchc"
}, {
    "id": "three",
    "pId": "product2",
    "tId": "searcht"
}]
function search(jsonList, searchText) {
    return jsonList.filter(function(x) {
        for (var i in x) {
            if (x[i].toLowerCase().indexOf(searchText.toLowerCase()) > -1) return x;
        }
    })
}
console.log(search(jsonList, 'search'))

关于javascript - json列表过滤器包含给定的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32250562/

10-11 06:11