这里我编写了一个程序,它将找到数组中的第一个回文字符串,就像数组是 ["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"]));
这是一个更简单的方法:
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"]));