2 回答
TA贡献1831条经验 获得超9个赞
const filteredProducts = products.filter(p => p.type.includes(type));
.filter
您可以在外部数组和.includes
内部数组上使用来执行您要查找的操作。
根据记录,“berry”从未出现在任何“type”数组中,但“berry”却出现在
TA贡献1875条经验 获得超5个赞
您可以使用Array.prototype.filter()withArray.prototype.some()来获取过滤结果。如果数组中至少有一个元素通过给定回调函数的测试,则 some() 方法返回 true。
const filterValue = 'berry';
const products = [
{
id: 1,
productName: 'Strawberry Basil',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/Cherry_Pop_Still_4K_Front-CherryPop.png?v=1588713373',
type: ['berry', 'citrusy', 'fancy'],
price: 5.5,
},
{
id: 2,
productName: 'Sour Blueberry',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/SourBlueBerry_Still_4K_Front-SourBlueberry.png?v=1588713584',
type: ['all', 'sour', 'berry'],
price: 4,
},
{
id: 3,
productName: 'Blackberry Jam',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/BlackBerry_Jam_Still_4K_Front-BlackberryJam.png?v=1595035965',
type: ['all', 'berry'],
price: 10,
},
{
id: 4,
productName: 'Orange Nectarine',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/Orange_Nectarine_Still_4K_Front-OrangeNectarine.png?v=1588713522',
type: ['all', 'Citrus', 'fancy', 'juicy'],
price: 6,
},
{
id: 5,
productName: 'Lemon Verbena',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/Lemon_Verbena_Still_4K_Front-LemonVerbena.png?v=1588713474',
type: ['all', 'Citrus', 'classic', 'floral'],
price: 4.5,
},
{
id: 6,
productName: 'Extra Peach',
productImgURL:
'https://cdn.shopify.com/s/files/1/0274/3641/7123/products/ExtraPeach_Still_4K_Front-ExtraPeach.png?v=1588713411',
type: ['Juicy'],
price: 8.5,
},
];
const ret = products.filter(({ type }) =>
type.some((x) => x.toLowerCase() === filterValue.toLowerCase())
);
console.log(ret);
添加回答
举报