gpt4 book ai didi

javascript - 使用另一个数组中的值过滤数组

转载 作者:行者123 更新时间:2023-12-01 03:53:52 24 4
gpt4 key购买 nike

我有两个数组。一个存放产品,另一个存放过滤器(衬衫、裤子等)。所有产品都有一个 type 属性,可以是衬衫、裤子等,与过滤器相对应。

我正在尝试创建一个选择器,该选择器将返回一个新数组,该数组缺少任何类型与任何过滤器匹配的产品。

export function filterProducts(products, filters) {
return products.filter((item) => {
return item.type === "hat";
});
};

与此类似,只不过明显检查每个过滤器,而不仅仅是“帽子”。我可以想到一些简单的方法来实现这一点,但我正在尝试找出更优雅的方法。我知道我必须在循环内循环,但我无法让它正常工作。 ES6/lodash等都可以。

最佳答案

假设 filters 是一个包含您要查找的类型的字符串数组,您可以使用 Array.prototype.some搜索filters数组来过滤它。

var products = [
{
name: 'Foo',
type: 'hat'
},
{
name: 'Bar',
type: 'shirt'
},
{
name: 'Baz',
type: 'pants'
},
{
name: 'Foobar',
type: 'hat'
},
{
name: 'Falsy Type',
type: ''
},
],
filters = ['hat', 'pants', ''];

function filterProducts(products, filters) {
return products.filter((item) => {
return !filters.some(filter => item.type === filter);
});
};

console.log(filterProducts(products, filters));

关于javascript - 使用另一个数组中的值过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42942550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com