我试图了解这个功能的作用,但我很无能为力。有什么想法吗?
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;
}
答案 0 :(得分:5)
它只是测试字符串是否对称,即索引i
中的每个字符都等于字符串末尾(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;
}
稍快但不太清楚:
{{1}}
为了好玩,jspef确认了它:http://jsperf.com/palyndromes