有没有一种优雅的方法来检查多个条件?
Is there an elegant way to check multiple conditions?
我有多个下拉菜单,即 part_no、part_category、品牌和型号。我正在尝试显示库存中的车辆零件数量。
鉴于我通过向下拉菜单提供更多值变得更加具体,因此必须显示的部分类型越少。 (类似于过滤)
我试图模仿的一个很好的例子是在这个网站上找到的下拉菜单:http://www.sgcarmart.com/used_cars/listing.php?MMO=Mini&RPG=20&MOD=Austin
是否有更好的检查方法(通过所有可能的组合)而不是这样做:
//Values from my dropdown menus
var carmake= $('#car_make').val();
var carmodel= $('#car_model').val();
var partname= $('#part_name').val();
var partcategory= $('#part_category').val();
if(carmake==data['carmake'])
{
//do something
}
else if (carmake==data['carmake'] && partname==data['partname'])
{
//do something
}
else if (carmodel==data['carmodel'] && partname==data['partname'])
{
//do something
}
else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory'])
{
//do something
} else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory' &&partname==data['partname'])
{
//do something
}
.
.
.
.
.
将所有测试值放在一个对象中,该对象的 属性 名称与 data
中的名称相同。然后遍历所有的属性,看它们是否都一样:
var search = {
carmake: $("#car_make").val(),
carmodel: $("#car_model").val(),
partname: $("#part_name").val(),
partcategory: $("#part_category").val()
};
var match = true;
$.each(search, function(prop, value) {
if (value !== "" && value != data[prop]) { // only compare if the dropdown was selected
match = false;
return false; // break out of the loop
}
});
if (match) {
// do something
}
我有多个下拉菜单,即 part_no、part_category、品牌和型号。我正在尝试显示库存中的车辆零件数量。
鉴于我通过向下拉菜单提供更多值变得更加具体,因此必须显示的部分类型越少。 (类似于过滤)
我试图模仿的一个很好的例子是在这个网站上找到的下拉菜单:http://www.sgcarmart.com/used_cars/listing.php?MMO=Mini&RPG=20&MOD=Austin
是否有更好的检查方法(通过所有可能的组合)而不是这样做:
//Values from my dropdown menus
var carmake= $('#car_make').val();
var carmodel= $('#car_model').val();
var partname= $('#part_name').val();
var partcategory= $('#part_category').val();
if(carmake==data['carmake'])
{
//do something
}
else if (carmake==data['carmake'] && partname==data['partname'])
{
//do something
}
else if (carmodel==data['carmodel'] && partname==data['partname'])
{
//do something
}
else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory'])
{
//do something
} else if (carmodel==data['carmodel'] && partname==data['partname'] &&partcategory==data['partcategory' &&partname==data['partname'])
{
//do something
}
.
.
.
.
.
将所有测试值放在一个对象中,该对象的 属性 名称与 data
中的名称相同。然后遍历所有的属性,看它们是否都一样:
var search = {
carmake: $("#car_make").val(),
carmodel: $("#car_model").val(),
partname: $("#part_name").val(),
partcategory: $("#part_category").val()
};
var match = true;
$.each(search, function(prop, value) {
if (value !== "" && value != data[prop]) { // only compare if the dropdown was selected
match = false;
return false; // break out of the loop
}
});
if (match) {
// do something
}