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

}
);