多个if和or条件
Multiple if and or conditions
我目前正在尝试在JavaScript中创建一个过滤器功能,允许您从预定义的列表中进行选择,以缩小所选选项。
过滤器有多个选项,根据过滤器中的匹配项缩小列表很简单,一次一个选项。但是如果选择了多个选项,我想根据匹配缩小列表。
示例:用户输入"Hello"作为关键字"Company"的筛选选项,这将导致选择只匹配Company == Hello。如果用户选择了第二个选项,"Good day"作为键"Position",那么我只希望在键"Company"answers"Position"匹配的情况下缩小列表。
没有实际编写任何代码,然后我知道这可以用很多AND或来完成,但我希望有一个更方便的方法来做到这一点,我没有看到。
var position = $('select[name=order_position]').select2('val');
var industry = $('select[name=order_industry]').select2('val');
var company = $('select[name=order_company]').select2('val');
$('.mail_select_prospect').each(function() {
var prospect_existing = $(this).attr('data-existing');
var prospect_position = $(this).attr('data-position');
var prospect_industry = $(this).attr('data-industry');
var prospect_company = $(this).attr('data-company');
var self = $(this);
if(
( $.inArray( prospect_position, position ) !== -1 ) ||
( $.inArray( prospect_industry, industry ) !== -1 ) ||
( $.inArray( prospect_company, company ) !== -1 ) ||
( $( 'input[name=order_existing]' ).is( ':checked' ) && prospect_existing == 1 ) ||
( $( 'input[name=order_nonexisting]' ).is( ':checked' ) && prospect_existing == 2 )
) {
self.prop('checked', true);
} else {
self.prop('checked', false);
}
});
这是我目前所拥有的,这是基于一个键匹配找到匹配,而我只想要匹配所有过滤器选择的结果。不只是一个。
使用,,整个方式将迫使用户在过滤器启动之前选择每个过滤器选项上的内容(显然),我希望可以选择一个关键字并与具有该关键字的人进行匹配,或者如果选择了两个关键字,我只希望匹配两个关键字。
任何建议吗?
我建议使用条件三元运算符。如果定义了过滤条件,则使用它;否则,该标准的检查应该总是通过。一个简单的例子可以是
if (
( position && position.length ? $.inArray( prospect_position, position ) !== -1 : true )
&& ( industry && industry.length ? $.inArray( prospect_industry, industry ) !== -1 : true )
&& ( $( 'input[name=order_existing]' ).is( ':checked' ) ?prospect_existing == 1 : true)
) {
...
}
此外,由于您在当前示例代码中只是基于此条件检查设置值true或false,因此您可以直接分配过滤结果(或为了清晰起见使用临时变量),
var include = ( position && position.length ? $.inArray( prospect_position, position ) !== -1 : true ) && ... ;
self.prop('checked', include);
相关文章:
- 消除JavaScript中的多个OR条件
- 模棱两可的multi_select过滤器 - AND 和 OR 条件 - javascript
- 如何在RegExp中生成OR条件
- Javascript if else语句OR条件错误
- Javascript:当属性可能不存在时,在对象中使用OR条件
- 使用 OR 条件删除带有猫鼬的 MongoDB 中的文档
- 如何在jQuery选择器中具有“and”和“or”条件
- Angularjs 多个“OR”条件不起作用
- 在 JavaScript 中,条件语句中 OR 运算符的正确语法是什么?我错过了什么
- 布尔代数 - 使用 AND/OR 导出条件表达式是棘手的部分
- JavaScript - 是否可以在不使用OR的情况下在一个条件下检查多个工作日
- Javascript Multiple OR 在 if 条件下使用 for 循环
- 如何在下划线.js中为 .where 函数放置 or 条件
- 如何使用AND和OR进行条件Mongoose查询
- jquery具有AND OR条件的多个选择器
- 对同一变量使用多个OR条件来简化IF语句
- 多个if和or条件
- Jquery中有OR条件吗?
- 使用or组合两个正则表达式条件
- 运行函数的OR条件