我试图了解此功能的作用,但我一无所知。有任何想法吗?
var mystery = function (str) {
var x=true;
for(var i=0; i<str.length/2; i++){
if(str.charAt(i)!=str.charAt(str.length-i-1)){
x = false;
}
}
return x;
}
我试图了解此功能的作用,但我一无所知。有任何想法吗?
var mystery = function (str) {
var x=true;
for(var i=0; i<str.length/2; i++){
if(str.charAt(i)!=str.charAt(str.length-i-1)){
x = false;
}
}
return x;
}
它只是测试字符串是否对称,即索引处的每个字符都i
等于与字符串结尾 (at length-i-1
) 相同距离处的字符,例如"radar"
。
它可以像这样简化并变得更快:
var mystery = function (str) {
for (var i=0; i<str.length/2; i++){
if (str.charAt(i) !== str.charAt(str.length-i-1)){
return false;
}
}
return true;
}
而且速度更快但不太清楚:
var mystery = function (str) {
for (var i=~~(str.length/2); i--;){
if (str.charAt(i) !== str.charAt(str.length-i-1)){
return false;
}
}
return true;
}
为了好玩,jspef 确认它:http: //jsperf.com/palyndromes