查找字符串中最长的回文并返回 Javascript 中最长的单个单词

Finding the longest Palindrome in a string and returning the longest single word in Javascript

我正在写一个方法来找到一个单词句子中最长的回文。到目前为止,我已经使用 for 循环来执行此操作,但它没有返回正确的词。

function findLongestPalindrome(sentence) {
  let wordArray = sentence.split(" ");
  let longestWord = 0;
  let word = " ";
  
  for(let i = 0; i < wordArray.length; i++) {
    if(longestWord < wordArray[i].length) {
      longestWord = wordArray[i].length;
      word = wordArray[i]
    }
  }
  return word;
}

谁能告诉我哪里出错了?

您缺少检查字符串是否为回文的函数。请参考下面的代码,您可以使用new Set()进一步优化并重构代码。

function findLongestPalindrome(sentence) {
  let wordArray = sentence.match(/\b\w+\b/g),
      longestWord = 0,
      word = " ";

  for (let i = 0; i < wordArray.length; i++) {
    if (longestWord < wordArray[i].length && isPalindrome(wordArray[i])) {
      longestWord = wordArray[i].length;
      word = wordArray[i]
    }
  }
  
  return word;
}

function isPalindrome(str) {
  return str.split('').reverse().join('') === str;
}

console.log(
  findLongestPalindrome('This is an interesting sentence: kayak, november, anna')
)