我很惊讶我没能找到与我的问题相关的任何内容。我正在寻找一种快速的方法,根据用户文本输入来过滤我的对象数组。
假设我有这个数组:
假设我有这个数组:
let data = [{
"id": 1,
"first_name": "Jean",
"last_name": "Owens",
"email": "jowens0@google.ru",
"gender": "Female"
}, {
"id": 2,
"first_name": "Marie",
"last_name": "Morris",
"email": "mmorris1@engadget.com",
"gender": "Female"
}, {
"id": 3,
"first_name": "Larry",
"last_name": "Wallace",
"email": "lwallace2@example.com",
"gender": "Male"
}];
用户输入 "s",预期结果应为:
let result = [{
"id": 1,
"first_name": "Jean",
"last_name": "Owens",
"email": "jowens0@google.ru",
"gender": "Female"
}, {
"id": 2,
"first_name": "Marie",
"last_name": "Morris",
"email": "mmorris1@engadget.com",
"gender": "Female"
}]
我可以这样使用过滤函数:
let = searchText = "s";
let result = data.filter(object=>{
for (var property in object) {
if (object.hasOwnProperty(property)) {
return object[property].toString().toLowerCase().indexOf(searchText) !== -1;
}
}
});
我想知道这个解决方案是否有更好的替代方法?
--这是一个有效的JsFiddle,感谢KoolShams
--用于基准测试的Plunker(使用2k数据进行测试)