2012-09-26 3 views
0

자바 애플리케이션에서 작업 중이며 해결할 수없는 문제가 발생했습니다. 문자열을 취하고 속성 이름이 문자이고 값이 문자열에 나타나는 빈도를 나타내는 함수를 작성해야합니다. 내가 지금까지 쓴 것은 : 내가 제대로이 일을하고 나는 그것을 대단히 감사하겠습니다 내가 뭘 잘못 말해하는 방법을 알아내는 데 도움 수있는 사람이Javascript getFrequencies() function

function getFrequencies(str) { 
    var holder = str; 
    var ticker = str; 
    var i = 0; 
    var j = 0; 
    var result = []; 

    while (i < holder.length && j < ticker.length) { 
     if (holder.charAt(i) < ticker.charAt(j)) { 
      i++; 
     } 
     else if (ticker.charAt(j) < holder.charAt(i)) { 
      j++; 
     } 
     else { 
      result.push(holder.charAt(i)); 
      i++; 
      j++; 
     } 
    } 

    return result; 
} 

합니다.

+0

당신은 객체 또는 배열을 반환해야합니까? 당신은 배열을 반환 .. – DrStrangeLove

답변

0
function getFrequencies(str) { 
    var obj = {}, i; 
    for (i = 0; i < str.length; i++) { 
    if (str.charAt(i) in obj) { 
     obj[str.charAt(i)]++; 
    } else { 
     obj[str.charAt(i)] = 1; 
    }; 
    } 
    return obj; 
} 

또는

String.prototype.getFrequencies = function() { 
    var obj = {}, i, c; 
    for (i = 0; i < this.length; i++) { 
    c = this.charAt(i); 
    if (c in obj) { 
     obj[c]++; 
    } else { 
     obj[c] = 1; 
    }; 
    } 
    return obj; 
} 

// usage 
var ret = "abcabcieefje".getFrequencies(); 
관련 문제