Javascript 如何对React Native中数组中的对象的不同键值应用筛选器
我正在尝试对包含对象的数组应用筛选器,我希望获得结果,就像我在搜索栏中键入国家/地区、名称或值一样,并获得与特定查询相关的结果。 请帮助我如何才能实现。目前,我可以得到一个值中的任何一个,但不是所有值,但我希望任何查询都可以给出结果。 这是我的阵列:Javascript 如何对React Native中数组中的对象的不同键值应用筛选器,javascript,arrays,reactjs,react-native,filter,Javascript,Arrays,Reactjs,React Native,Filter,我正在尝试对包含对象的数组应用筛选器,我希望获得结果,就像我在搜索栏中键入国家/地区、名称或值一样,并获得与特定查询相关的结果。 请帮助我如何才能实现。目前,我可以得到一个值中的任何一个,但不是所有值,但我希望任何查询都可以给出结果。 这是我的阵列: data: [ { id: "1", value: "Zaid Qureshi", country: "Pakistan", price: "23" },
data: [
{ id: "1", value: "Zaid Qureshi", country: "Pakistan", price: "23" },
{ id: "2", value: "Wasiq Safdar", country: "UK", price: "23" },
{ id: "3", value: "Bilal Hasan", country: "US", price: "23" },
{ id: "4", value: "Waqas Hasan", country: "Austria", price: "23" },
{ id: "5", value: "Malik Mati", country: "Saudia", price: "23" },
{ id: "6", value: "Zeeshan", country: "Japan", price: "23" },
{ id: "7", value: "ABC", country: "China", price: "23" },
{ id: "8", value: "DEF", country: "Isreal", price: "23" },
{ id: "9", value: "GHI", country: "Canada", price: "23" },
{ id: "10", value: "JKL", country: "Inda", price: "23" },
],
目前我正在做这件事
const searchData = this.state.data.filter((item) =>
item.value.toLowerCase().includes(search.toLowerCase())
);
您可以使其更具动态性,以便每次添加新的键值时,无需再次通过放置另一个或多个键值来修改逻辑
let searchData = data.filter((item) =>{
for(key in item)
{
if(item[key].toLowerCase().includes(search.toLowerCase()))
{
return true
}
}
return false
}
);
您只需使用OR运算符即可 运算符:&&logic(AND)-| | logic(OR)上的快速突出显示
const searchData=this.state.data.filter((项)=>
item.value.toLowerCase().includes(search.toLowerCase())
||
item.country.toLowerCase().includes(search.toLowerCase())
||
item.price.toLowerCase().includes(search.toLowerCase())
);
祝你的项目好运
let searchData = data.filter((item) =>{
for(key in item)
{
if(item[key].toLowerCase().includes(search.toLowerCase()))
{
return true
}
}
return false
}
);