javascript - 回文检查器 - for 循环的问题
问题描述
我正在学习 javaScript 并编写一个回文检查器来练习。它不起作用,通过使用打印语句,我将其范围缩小为我的 for 循环的问题。我不明白为什么它不起作用;谁能阐明一下?
function palindrome(str) {
var newString = str.replace(/[^a-z0-9]/g, '').toLowerCase();
console.log(newString)
var forwardsArray = newString.split("");
console.log(forwardsArray)
var backwardsArray = forwardsArray.reverse();
console.log(backwardsArray)
for (var i = 0; i < backwardsArray.length; i++) {
for (var j = 0; j < forwardsArray.length; j++) {
console.log(backwardsArray[i])
console.log(forwardsArray[i])
if (forwardsArray[j] !== backwardsArray[i]) {
return false;
}
}
return true;
}
}
解决方案
当然,到现在为止,您已经发现自己想多了。
function palindrome(str) {
const newString = str.replace(/[^a-z0-9]/g, '').toLowerCase();
const reversed = newString.split('').reverse().join('');
return newString === reversed;
}
palindrome("abba"); // true
palindrome("abcd"); // false
所以我离开了newString
逻辑,但是在这样做之后,在一天结束的时候,你将采用相同的方法newString
并拆分它,反转它并加入它,然后将它与它的原始字符串进行比较,在你的情况下,newString
.
所以你直接比较reversed
你的字符串,如果它们相等,那么它是一个回文,如果不是,那么它不是一个回文。
推荐阅读
- ios - 错误:实例成员不能用于类型 viewController
- css - 嵌入 Vimeo 播放器(或任何 iframe 视频播放器)全宽和全高
- amazon-web-services - AWS + Springboot + 微服务 + Elastic BeanStalk + API Gateway + DynamoDB
- python - 修复多记录表中的错误日期
- python - 无法理解来自 Clickhouse 服务器的错误消息
- python - 如何让 if-loop 一直运行
- html - 如何使用 animate.css 向网站添加动画
- javascript - 如何使用javascript计算太阳下点的纬度(即太阳赤纬)?
- python - 如何迭代 CSV 文件并根据另一列的值更新一列中的值
- amazon-web-services - 我能否将我的 docker 存储库或图像从 Amazon ECR 直接移动到不同账户上的另一个 ECR 存储库?