Javascript 使用逻辑运算符和其他数组筛选新数组
我有一系列的食物,各种各样的对象代表着每种食物的信息Javascript 使用逻辑运算符和其他数组筛选新数组,javascript,Javascript,我有一系列的食物,各种各样的对象代表着每种食物的信息 var Food = { ["Apple","Green","Fruit"], ["Basil","Green","Herb"], ["Tomato","Red","Fruit"], ["Carrot","
var Food = {
["Apple","Green","Fruit"],
["Basil","Green","Herb"],
["Tomato","Red","Fruit"],
["Carrot","Orange","Vegetable"],
["Zucchini","Green","Vegetable"]
}
我可以使用filter
功能将此数组过滤到新数组中
var newArray = Food.filter(function (el) {
return el[2] == "Fruit" ||
el[2] == "Vegetable" ||
});
正如所料,这将生成一个包含水果和蔬菜的新数组
但是,我想使用带有或逻辑运算符的单独数组作为过滤标准
例如,我会有这样一个数组:
var filters = ["Fruit","Vegetable"]
然后,它将在过滤器函数中引用,以产生相同的结果
我尝试过一些方法,例如在通过函数传递字符串时构建字符串,但是在数组的最后一个对象上没有使用|
时遇到了问题
如何才能成功地实现这一点?使用过滤器()中的数组#some()
对于有条件的使用every()
而不是some()
var食品=[
[“苹果”、“绿色”、“水果”],
[“罗勒”、“绿色”、“香草”],
[“番茄”、“红色”、“水果”],
[“胡萝卜”、“橙子”、“蔬菜”],
[“西葫芦”、“绿色”、“蔬菜”]
]
变量过滤器=[“水果”、“蔬菜”];
var newArray=Food.filter(el=>filters.some(f=>el.includes(f));
console.log(newArray)
您的食物
对象中有语法问题,您没有指定密钥名称