gpt4 book ai didi

javascript 程序检查字符串是否为回文不返回 false

转载 作者:行者123 更新时间:2023-12-03 06:01:37 25 4
gpt4 key购买 nike

我编写了这段代码,作为检查天气或字符串是否为回文的练习的一部分。他们的程序在检查字符串方面工作正常,但当字符串不是回文时,它不会返回 false。我究竟做错了什么?谢谢

//convert the string to array
var stringArr = [ ];
var bool;
function palindrome(str) {
// make lowercase
var lowerCase = str.toLowerCase();
//remove numbers, special characters, and white spaces
var noNumbers = lowerCase.replace(/[0-9]/g, '');
var noSpecials = noNumbers.replace(/\W+/g, " ");
var finalString = noSpecials.replace(/\s/g, '');
stringArr = finalString.split("");

if (stringArr.sort(frontToBack)==stringArr.sort(backToFront)) {
bool = true;
}
else {
bool= false;

}
return bool;
}
function frontToBack (a,b) {return a-b;}
function backToFront (a,b) {return b-a;}

palindrome("eye");

最佳答案

if (stringArr.sort(frontToBack)==stringArr.sort(backToFront)) { 是你的问题。

在 JavaScript 中,sort 方法会更新正在排序的变量的值。因此,在比较中,一旦两种排序都运行,两者最终都会得到相同的值(因为第二种排序有效地覆盖了第一种排序)。

例如。

var a = [1,7,3];
a.sort();
console.log(a); // will print 1,3,7

编辑:进行了快速测试,我认为 eavidan 的建议可能是最好的。

Edit2:只需将一个有望正常工作的回文函数的快速版本放在一起:)

 function palindrome(str) { return str.split("").reverse().join("") == str;}

关于javascript 程序检查字符串是否为回文不返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39730416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com