使用以下函数,我正在搜索数组中是否存在值;
var checkboxValues = ['large-car', 'small-car', 'automatic'];
var carType = ["large-car"];
function searchArray(arguments)
{
var o = {};
for(var i=0;i<arguments.length;i++)
{
o[arguments[i]]=null;
}
return o;
}
if (carType in searchArray(checkboxValues) )
//do something...
当carType
(这是一个数组本身)仅包含一个值但carType
包含多个值时,此条件很有效,例如,
var carType = ["large-car", "4WD"];
...然后该函数将返回 false。
为了提供一些背景知识,我想做的是根据某些条件显示或隐藏地图标记(通过谷歌地图),
- 自动的
- 手动的
- 小型车
- 大型车
- 四驱车
这些值中的每一个都表示为一个复选框。如果选择“自动”和“小型汽车”,则仅显示包含这两个值的地图标记。
如果选择了“自动”、“小型汽车”和“大型汽车”,则仅显示与这些选择匹配的值。
如果carType
数组仅包含一个值,但由于单个车辆可能具有多个类型,如上所示,则此方法有效,这就是函数失败的地方。
编写函数以允许将一个数组中的多个值与另一个数组中的多个值进行比较的最佳方法是什么?