-3

写出以下代码的最短最神秘的方法是什么?此代码在继续之前检查字符是否存在。

if(window.location.href.toString().indexOf('A') > 1) {

if(window.location.href.toString().indexOf('hh') > 1) {

if(window.location.href.toString().indexOf('eg3') > 1) {

if(window.location.href.toString().indexOf('1g4') > 1) {

}

}

}

}
4

2 回答 2

1

这条或多或少神秘的线呢?

function check (a,b) {for (var i=0,k,f=1;k=b[i];i++) {f^=!!~a.indexOf(k)};return !f;}

或者,如果您愿意,可以使用Closure 编译版本

function check(d,e){for(var b=0,c,a=1;c=e[b];b++)a^=!!~d.indexOf(c);return!a};

输出

var x = "asdf";    
console.log("found: %s", check (x,["qwer","rtz"])) //found: false
console.log("found: %s", check (x,["qwer","a"])) //found: true

这将检查是否a包含包含在b

在你的情况下 check (window.location.href,["A","hh","eg3","1g4"])?/*Code to execute when true*/:/*When false*/

或者(function (a,b) {for (var i=0,k,f=1;k=b[i];i++) {f^=!!~a.indexOf(k)};return !f;})(window.location.href,["A","hh","eg3","1g4"])?alert("found"):alert("not found")

于 2013-05-29T11:53:07.543 回答
0

如果您的浏览器支持forEach()方法,您可以用这种神秘的方式编写

var str = location.href,    
    existAllSubstring = 1; 

["A", "hh", "eg3", "ig4"].forEach(function(s) {
   existAllSubstring *= +(str.indexOf(s) > 1);
});


if (existAllSubstring > 0) {
  /* ok */
}
于 2013-05-29T11:57:13.350 回答