我试图理解这个函数的作用,但我一无所知。有什么想法吗?
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
处的每个字符都等于距字符串末尾相同距离的字符(位于 length-i-1
) 就像“雷达”
。
它可以像这样简化并变得更快:
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
关于javascript - 未知的函数行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419808/