2013-03-14 3 views
2

이 함수의 기능을 이해하려고 시도하지만 저는 단서입니다. 어떤 아이디어? 캐릭터가 대칭 인 경우알 수없는 함수 동작

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; 
} 
+1

+ 1, 시원한 회문 기능. :) –

답변

5

는 단순히 그 "radar" 등 (length-i-1 AT) 열의 단부로부터 같은 거리에있는 문자와 동일한 인덱스 i에서 각 특성을 갖고, 테스트.

그것은 단순화 할 수

빨리이 같은 :

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

+0

고마워요! 많이 감사 드려요 :) –

+0

내가 만든 변경 사항이 모두 명확한가요? –

+0

그래, 적은 코드, 더 우아하고 이해하기 쉽다. –

관련 문제