javascript - JavaScript 函数中的 .split 存在问题,该函数获取字符串中每个单词的最大重复字符数

标签 javascript arrays string function split

我正在编写一个 JavaScript 函数,它必须接受字符串参数并确定具有最大数量或重复(或最频繁)非连续字符的单词,然后返回该单词或多个单词。

我解决这个问题的方法是首先找到每个单词重复一个字符的最大次数,并记录该数字,以便稍后在函数中使用,以测试字符串(或数组中的每个单词)字符串,因为我后来将其分割);如果该单词满足条件,它将被插入我返回的数组中。

我的 maxCount 函数似乎单独工作得很好,但是当我尝试让它与我的其他函数一起工作以返回具有最大重复字符的单词时,它在 JS Fiddle 中不起作用 - 它一直告诉我“字符串” .split 不是一个函数” - 我承认我使用它 (string.split(string[i]).length) 来逐个字母地分析字符串中的单词的方式是有点非常规 - 我希望有某种方法可以挽救我的一些逻辑,使这项工作在可以协同工作以获得我想要的结果的函数中发挥作用。

另外,我不知道我是否正确/以“合法”方式使用 Math.max,我希望如此。我尝试将我的变量名切换为“字符串”,认为这会有所不同,但即使我的参数是字符串类型并且它是所表示的字符串,但它并没有改变。

这是我的 fiddle 的链接: https://jsfiddle.net/Tamara6666/rdwxqoh6/

这是我的代码:

var maxCount = function (word) {
  /// var maxRepeats = 0;
  var numArray = [];
  var string = word;
  for (var i = 0, len = string.length; i < len; i++) {
  //split the word('string') into letters at the index of i
    numArray.push((string.split(string[i]).length) -1);
  }
  var max = Math.max(...numArray);
  return max;
}
///console.log(maxCount("xxxxxxxxxxxxx"));

var LetterCount = function(string){
  var repeatedChars = 0;
  var wordArray=[];
  var stringArray = string.split(" ");
  for (var i = 0; i < stringArray.length; i++){
  var eachWord = stringArray[i];
  var maxRepeats = maxCount(stringArray);

  if (repeatedChars < maxRepeats) {
    repeatedChars = maxRepeats;
    wordArray = [eachWord];
  }else if (repeatedChars == maxRepeats) {
    wordArray.push(eachWord);
  }
}
return wordArray;  
};

console.log(LetterCount("I attribute my success to cats"));
//should return ["attribute", "success"]

*** 我试图将第一个函数映射到我在空格处分割字符串时形成的数组,但它只是返回给我一个空数组(在本例中我也可能没有正确使用映射) ;我还尝试使用 valueOf 从第一个函数的数组中提取原始值,但这也不起作用。我不太确定此时该做什么或采取什么 Angular - 我觉得如果我更多地了解出了什么问题,我可以更轻松地解决它。任何帮助将非常感激。谢谢!

最佳答案

您在第 20 行将一个数组传递给 maxCount,而它需要一个字符串:

var maxRepeats = maxCount(stringArray);

您应该使用:

var maxRepeats = maxCount(eachWord);

关于javascript - JavaScript 函数中的 .split 存在问题,该函数获取字符串中每个单词的最大重复字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35250141/

相关文章:

Javascript创建函数以在其他函数之间共享变量

javascript - webpackDevMiddleware 不会自动重新加载

javascript - 如何在VueJS中按对象属性过滤对象数组

php - 在 PHP 中发布数组

javascript - 字符串到填充字符的数组

javascript - 如何在用户离开(关闭)页面时发送 AJAX 请求?

javascript - 使用循环来缩短此代码 (javascript)

java - 将数组复制到另一个数组中

php - 使用 PHP 将带有冒号字符串的 24 小时时钟转换为分钟?

c++ - 如何利用 STL 在这个问题上获得更好的结果和性能