在js中查找数组中的第一个回文字符串

问题描述 投票:0回答:1

这里我编写了一个程序,它将找到数组中的第一个回文字符串,就像数组是 ["abs", "car", "ada", "racecar", "cool"] 一样,我想要像这样的输出“ada”,所以我编写了一个代表回文逻辑表示的程序,所以这里的输出没有按预期出现。您能纠正和修改那个程序吗?

function isPalindrome(str) {
let left=0,right=str.length
while(left<right){
    if(str.charAt(left)!=str.charAt(right)){
        return false
    }
    left++;
    right--;
}
return true
}
function firstPalindrome(words) {
  for (let i=0;i<words.length;i++) {
    if (isPalindrome(words[i])) {
      return words[i];
    }
  }
  return "";
}

console.log(firstPalindrome(["abc", "car", "ada", "racecar", "cool"]));
javascript string palindrome
1个回答
0
投票

这是一个更简单的方法:

function isPalindrome(str) {
  // compare str with its reverse:
  return str == str.split('').reverse().join('')
}

function firstPalindrome(words) {
  // filter the array to just palindromes, then return the first one (if any)
  return words.filter(isPalindrome)[0]
}

console.log(firstPalindrome(["abc", "car", "ada", "racecar", "cool"]));

© www.soinside.com 2019 - 2024. All rights reserved.