检查字符串中重复的单词,并在javascript中保持计数

检查字符串中重复的单词,并在javascript中保持计数,javascript,loops,Javascript,Loops,我试图在一个字符串中找到重复的单词,并记下它被重复了多少次。 如何在javascript中实现这一点 让checkWords=“我不会永远活着,但我想趁活着的时候活着” {newStr}用于反词 {newStr2}对于计数器字母如何计算每个单词在字符串中出现的次数: 使用.replace() 使用.toLowerCase() 使用.split() 循环遍历每个单词(.forEach),将其添加到单词计数对象 const result=document.getElementById('resu

我试图在一个字符串中找到重复的单词,并记下它被重复了多少次。 如何在javascript中实现这一点

让checkWords=“我不会永远活着,但我想趁活着的时候活着”
{newStr}用于反词

{newStr2}对于计数器字母

如何计算每个单词在字符串中出现的次数:

  • 使用
    .replace()
  • 使用
    .toLowerCase()
  • 使用
    .split()
  • 循环遍历每个单词(
    .forEach
    ),将其添加到单词计数对象
  • const result=document.getElementById('result');
    让str=“我不会永远活下去,但我想趁活着的时候活下去。”;
    //从字符串中去掉所有标点符号
    让strStripped=str.replace(/[,!]/g');
    result.innerHTML=`strStripped:${strStripped}\n`;
    //将字符串分隔为小写单词数组
    让words=strStripped.toLowerCase().split(“”);
    result.innerHTML+='words:'+JSON.stringify(words,null,2);
    //词数的形式对象
    让wordCounts={};
    words.forEach(word=>{
    字数[字]=(字数[字]| | 0)+1;
    });
    result.innerHTML+='\n排序计数:'+
    stringify(字数,null,2)
    
    首先将给定字符串转换为数组。为此,请使用
    string.split(“”)

    其次,创建一个
    映射
    ,它将单词存储为关键字,并计算为值

    现在遍历stringArray并将当前单词存储到映射中。并在每次找到该单词时增加该单词的计数

    检查下面的代码

    让words=“我不会永远活着,但我想趁活着的时候活着”;
    函数计数重复词(句子){
    让单词=句子。拆分(“”);
    让wordMap={};
    for(设i=0;i

    我希望这对您有所帮助。

    这能回答您的问题吗?是的,问题是类似的,但我希望答案中有一点细节。还有许多其他的重复,因为这是一个非常常见的操作。搜索词:“js词频计数”。如果你想在答案中找到一些细节,你需要在问题中添加一些细节。这里没有任何尝试——这是一种习惯。请看。@ggorlen谢谢你,但你的帮助对我没有帮助。这里使用对象来区分单词,关键字是单词,值是出现的次数
    obj[split[i]==undefined
    用于检查对象是否包含来自数组的单词:
    split[i]
    ({…acc[rec]:(acc[rec]| 0)+1}您能解释一下这部分吗,please@Zebaspread operator…acc,rec its elemets array newStr,如果acc[rec]非未定义或空转到+1或0。我无法解释reduce,但这里所有的魔法都使reduce变为reduce。如果我的回答对您有帮助,请检查我的回答和acc[rec]观看我们acc中的重复元素
    let checkWords = "I am not gonna live forever, but I wanna live while I am alive"
    
    const newStr = checkWords.split(' ').reduce((acc,rec) => {
      return ({ ...acc, [rec]: (acc[rec] || 0) + 1 })
    },{})
    
    const newStr2 = checkWords.split('').reduce((acc,rec) => {
      return ({ ...acc, [rec]: (acc[rec] || 0) + 1 })
    },{})