2016-03-26 10 views
-1

空白文字列内のすべての "、"を削除しようとしています。.replace()の問題

返し
// function for getting the frequency of each word within a string 
function getFreqword(){ 
    var string = tweettxt.toString(), // turn the array into a string 
     split = string.split(" "), // split the string 
     words = {}; 

    for (var i=0; i<split.length; i++){ 
    if(words[split[i]]===undefined){ 
     words[split[i]]=1; 
    } else { 
     words[split[i]]++; 
    } 
    } 
    return words; 
} 

{ hello: 50, bye: 36, 'bye,hello': 6 } 

「をこんにちは、さようなら」の発生を削除しようとする試みでは、現在、私はtweettxtは、単にハローの複数のインスタンスを持つ配列であり、さようなら、次のコードを持っています私が出くわしたとライン4 split = string.replace(/,/g, "")に.replace代わりの.splitを実装しかし、これはその後、返します

{ h: 56, e: 98, l: 112, o: 56, ' ': 91, b: 42, y: 42 } 

私の理解では、.replaceがちょうど担当者だろうということです""でレースするが、これは明らかにそうではない。誰も助けを提供することはできますか?

EDIT:.replace

// function for getting the frequency of each word within a string 
function getFreqword(){ 
    var string = tweettxt.toString(), // turn the array into a string 
     split = string.replace(/,/g, ""), // split the string 
     words = []; // array for the words 

    for (var i=0; i<split.length; i++){ 
    if(words[split[i]]===undefined){ 
     words[split[i]]=1; 
    } else { 
     words[split[i]]++; 
    } 
    } 
    return words; 
} 
+1

'split'は配列を返します。replaceは文字列を返します。したがって、ロジックを適切に調整する必要があります。 – Xufox

+0

あなたのコードにこの '.replace()'コードを正確に入れようとしましたか?あなたの質問にその場所を示してください。 '.replace()'は文字列に対して作用し、新しい文字列オブジェクトを返します。 – jfriend00

+1

変数名としてstringやsplitなどの単語を使用するのは良い方法ではありません。あなたはtweettxtを直接使うことはできませんか? – MikeC

答えて

2

string.replace(/、/ gで、 "")と

コードだけカンマなしで同じ文字列(いない配列)を返します。 また、odスペースに基づいて単語を数えたい場合は、カンマをスペース( "")に置き換える必要があります。 最初にコンマを置き換えて分割する必要があります。 例:

function getFreqword(){ 
var string = tweettxt.toString(), // turn the array into a string 
    sanitizedString = string.replace(/,/g, " "), 
    split = sanitizedString.split(" "), // split the string 
    words = {}; 

    for (var i=0; i<split.length; i++){ 
     if(words[split[i]]===undefined){ 
      words[split[i]]=1; 
     } else { 
      words[split[i]]++; 
     } 
    } 
    return words; 
} 
+0

Worded a charm、ありがとう – user4357505