我需要检查数组中是否包含某些特定值.我可以这样:
if($.inArray('Z', arr) != -1){
..
}else if($.inArray('A', arr) != -1){
..
}else if($.inArray('G', arr) != -1){
..
}else if($.inArray('T', arr) != -1){
......
Run Code Online (Sandbox Code Playgroud)
或者更短:
if($.inArray('Z', arr) != -1) || ($.inArray('A', arr) != -1) || ($.inArray('G', arr) != -1) ||($.inArray('T', arr) != -1) ... {
Run Code Online (Sandbox Code Playgroud)
但是我的代码有更短的版本吗?谢谢
您可以使用Array.prototype.some迭代数组并检查数组中的任何元素是否与给定谓词匹配:
var found = arr.some(function(s) {
return s.match(/^[ZAGT]$/);
});
Run Code Online (Sandbox Code Playgroud)
如果您不注意使用正则表达式,请将中间行替换为:
return s === 'Z' || s === 'A' || s === 'G' || s === 'T';
Run Code Online (Sandbox Code Playgroud)
好的特点.some是,一旦发现任何匹配,它就会突破其内部循环.
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |