我正在尝试删除带有空格的字符串中的所有“,”。目前我有以下代码,其中tweettxt只是一个包含多个hello和bye实例的数组:
// 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 }
为了消除'bye,hello'的出现,我遇到并在第4行split = string.replace(/,/g, "")
上实现了.replace而不是.split,但是这会返回:
{ h: 56, e: 98, l: 112, o: 56, ' ': 91, b: 42, y: 42 }
我的理解是.replace只会用“”取代,但显然并非如此。有人可以提供任何帮助吗?
编辑:
代码.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;
}
答案 0 :(得分:2)
string.replace(/,/ g,&#34;&#34;)只返回不带逗号的相同字符串(不是数组)。 此外,如果您需要计算基于od空格的单词,则应使用空格替换逗号(&#34;&#34;)。 所以你需要先替换逗号,然后再进行拆分。 E.g:
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;
}