Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用逻辑运算符和其他数组筛选新数组_Javascript - Fatal编程技术网

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)
您的
食物
对象中有语法问题,您没有指定密钥名称