【发布时间】:2021-04-02 01:58:05
【问题描述】:
基于过滤器对象,我需要过滤掉数据。下面是具有所需输出的过滤器对象和示例数据。过滤器对象是通过 ui 中的多搜索组件动态生成的。然后当用户点击搜索时,需要过滤数据。
var filter = {
city: 'pana',
hospname: 'sara'
};
var data = [
{
"city": "Hot Springs",
"hospname": "St. Vincent Hot Springs",
"version": "VA48A",
"sysid1": "CT67400",
"type": "CompressedFile",
"rowIndex": 0,
"selected": false,
"disabled": true
},
{
"city": "Panama City",
"hospname": "Bay Medical Center",
"version": "VA48A",
"sysid1": "CT67399",
"type": "CompressedFile",
"rowIndex": 1,
"selected": false,
"disabled": true
},
{
"city": "Sarasota",
"hospname": "Sarasota Memorial Hospital",
"version": "VA44A",
"sysid1": "C7393",
"type": "CompressedFile",
"rowIndex": 2,
"selected": false,
"disabled": true
},
{
"city": "DAVENPORT",
"hospname": "Genesis Medical Center",
"version": "VA48A",
"sysid1": "C6333",
"type": "CompressedFile",
"rowIndex": 6,
"selected": false,
"disabled": true
}
];
预期输出:
[{
"city": "Panama City",
"hospname": "Bay Medical Center",
"version": "VA48A",
"sysid1": "CT67399",
"type": "CompressedFile",
"rowIndex": 1,
"selected": false,
"disabled": true
},
{
"city": "Sarasota",
"hospname": "Sarasota Memorial Hospital",
"version": "VA44A",
"sysid1": "CT67393",
"type": "CompressedFile",
"rowIndex": 2,
"selected": false,
"disabled": true
}]
【问题讨论】:
-
尝试为它写一个函数。
-
@KooiInc 好吧,我正在尝试,但无法找到解决方案。以下函数仅适用于过滤器对象中的单个值。 data.filter(function(item) { for (var key in filter) { if (item[key].toLowerCase().indexOf(filter[key].toLowerCase()) == -1){ return false; } }返回真;});
-
我同意。我会改进的
标签: javascript arrays object filter