我试图在我的React应用程序中创建一个搜索功能,以通过检查数组中的项目来过滤出一个项目。我有使用.filter()和.includes()来映射搜索中特定项目的想法。但是,从后端拉出的对象具有用户将非常嵌套搜索的项目。
这里是一个对象的示例,其中包含我要过滤的项目:
const x = [
{
owner: "76561198111463361",
sold: true,
inventory: [
{
name: "AK-47 | Redline", //User may look for this
price: 1369,
},
{
name: "StatTrak™ AWP | Asiimov", //User may look for this
price: 8050,
},
],
name: "m",
password: "e",
},
{
owner: "76561198111463361",
sold: true,
inventory: [
{
name: "AK-47 | Redline", //User may look for this
price: 1369,
},
{
name: "StatTrak™ AWP | Asiimov", //User may look for this
price: 8050,
},
],
name: "m",
password: "e",
},
];
我如何过滤这些?在此先感谢任何可以帮助您的人:)
您可以使用它过滤掉所有者信息,x.filter(item => item.inventory.find(data => data.name.indexOf(searchKeyword) !== -1))
,如果您想要更具体的内容,请评论下来
不确定您要如何对其进行过滤,也会共享所需的输出,以提高清晰度。
var data=[{owner: "76561198111463361",sold: true,inventory: [{ name: "AK-47 | Redline", }, { name: "StatTrak™ AWP | Asiimov",}],name: "m",password: "e",},{owner: "76561198111463361",sold: true,inventory: [{ name: "AK-47 | Redline", }, { name: "StatTrak™ AWP | Asiimov",}],name: "m",password: "e"}];
var string = 'Redline';
result = data.filter(val=>val.inventory.some(k=>k.name.toUpperCase().includes(string.toUpperCase())));
console.log(result);
请让我知道这是否解决了您的问题。