在数组Javascript中搜索ot字符串

在数组Javascript中搜索ot字符串,javascript,Javascript,我需要用javascript编写一个函数,它在文本中查找字符串,并打印在文本中找到字符串的次数。这是我的代码,它不工作的原因。。。。请帮忙 var word = 'text', text = 'This is some wierd stupid text to show you the stupid text without meaning text just wierd text oh text stupid text without meaning.'; searchWord(wo

我需要用javascript编写一个函数,它在文本中查找字符串,并打印在文本中找到字符串的次数。这是我的代码,它不工作的原因。。。。请帮忙

var word = 'text',
    text = 'This is some wierd stupid text to show you the stupid text without meaning text just wierd text oh text stupid text without meaning.';

searchWord(word, text);

function searchWord(word, text) {
    switch (arguments.length) {
        case 1: console.log('Invalid input, please try again'); break;
        case 2: var array = text.split(' ');
            for (var i = 0; i < array.length; i++) {
                var count = 0;
                if (array[i] === word) {
                    count ++;
                }
            }
            console.log('Word ' + word + ' is repeated in the text ' + count + ' times');

    }
}
var word='text',
text='这是一些愚蠢的文本,向你展示没有意义的愚蠢文本,只是愚蠢的文本,哦,愚蠢的文本,没有意义';
搜索词(单词、文本);
函数搜索词(词、文本){
开关(arguments.length){
案例1:console.log('输入无效,请重试');中断;
案例2:var数组=text.split(“”);
对于(var i=0;i
您的代码中有一个小问题。你得走了

var count = 0;

在for循环之外。

代码中有一个小问题。你得走了

var count = 0;
在for循环之外。

移动

  var count = 0;
跳出你的循环

移动

  var count = 0;

循环外部

您的
计数
变量应该在
for循环外部
,否则每次进入循环时都会重置它

function searchWord(word, text) {
    switch (arguments.length) {
        case 1: console.log('Invalid input, please try again'); break;
        case 2: var array = text.split(' ');
            var count = 0;//Place it here.
            for (var i = 0; i < array.length; i++) {

                if (array[i] === word) {
                    count ++;
                }
            }
            console.log('Word ' + word + ' is repeated in the text ' + count + ' times');

    }
} 
函数搜索词(词、文本){
开关(arguments.length){
案例1:console.log('输入无效,请重试');中断;
案例2:var数组=text.split(“”);
var count=0;//将其放在此处。
对于(var i=0;i
您的
计数
变量应该在
for循环
之外,否则每次进入循环时都会重置它

function searchWord(word, text) {
    switch (arguments.length) {
        case 1: console.log('Invalid input, please try again'); break;
        case 2: var array = text.split(' ');
            var count = 0;//Place it here.
            for (var i = 0; i < array.length; i++) {

                if (array[i] === word) {
                    count ++;
                }
            }
            console.log('Word ' + word + ' is repeated in the text ' + count + ' times');

    }
} 
函数搜索词(词、文本){
开关(arguments.length){
案例1:console.log('输入无效,请重试');中断;
案例2:var数组=text.split(“”);
var count=0;//将其放在此处。
对于(var i=0;i
您可以使用正则表达式来计算发生次数

var word='text',
text='这是一些愚蠢的文本,向你展示没有意义的愚蠢文本,只是愚蠢的文本,哦,愚蠢的文本,没有意义';
搜索词(单词、文本);
函数搜索词(词、文本){
var re=new RegExp(“+text+”,“g”);
变量计数=(text.match(/text/g)| |[]).length;
log('Word'+Word+'在文本'+count+'times'中重复);

}
您可以使用正则表达式来计算发生次数

var word='text',
text='这是一些愚蠢的文本,向你展示没有意义的愚蠢文本,只是愚蠢的文本,哦,愚蠢的文本,没有意义';
搜索词(单词、文本);
函数搜索词(词、文本){
var re=new RegExp(“+text+”,“g”);
变量计数=(text.match(/text/g)| |[]).length;
log('Word'+Word+'在文本'+count+'times'中重复);

}
已回答,但这是获取计数的简短版本:

function getWordCount(word, text) {
     if(arguments.length === 0) return;

     var count = 0;
     text.split(" ").forEach(function(val) {
          if(val === word) count++;
     });
}

已回答,但这是获取计数的简短版本:

function getWordCount(word, text) {
     if(arguments.length === 0) return;

     var count = 0;
     text.split(" ").forEach(function(val) {
          if(val === word) count++;
     });
}
没有循环或RegExp的简单单行解决方案 这一行解决方案似乎可行。请注意,它在句子的开头和结尾添加了一个空格,以捕捉结尾处匹配的单词。这也可以用一个纯RegExp来完成,但是它不是一行。。。我喜欢简单的解决方案

return (' ' + text.toLowerCase() + ' ').split( ' ' + word.toLowerCase() + ' ' ).length - 1;
重构原始代码,我们可以消除10条无关的行和一个循环:

函数搜索词(词、文本){
return(“”+text.toLowerCase()+“”).split(“”+word.toLowerCase()+“”).length-1;
}
var word='text',
text='这是一些愚蠢的文本,向你展示没有意义的愚蠢文本,只是愚蠢的文本,哦,愚蠢的文本,没有意义';
log('Word'+Word+'在文本'+searchWord(Word,text)+'times'中重复)没有循环或RegExp的简单单行解决方案
这一行解决方案似乎可行。请注意,它在句子的开头和结尾添加了一个空格,以捕捉结尾处匹配的单词。这也可以用一个纯RegExp来完成,但是它不是一行。。。我喜欢简单的解决方案

return (' ' + text.toLowerCase() + ' ').split( ' ' + word.toLowerCase() + ' ' ).length - 1;
重构原始代码,我们可以消除10条无关的行和一个循环:

函数搜索词(词、文本){
return(“”+text.toLowerCase()+“”).split(“”+word.toLowerCase()+“”).length-1;
}
var word='text',
text='这是一些愚蠢的文本,向你展示没有意义的愚蠢文本,只是愚蠢的文本,哦,愚蠢的文本,没有意义';

log('Word'+Word+'在文本'+searchWord(Word,text)+'times'中重复)