【发布时间】:2019-02-25 19:43:39
【问题描述】:
我正在学习 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;
}
}
【问题讨论】:
-
您的代码似乎正在检查数组的每一项与另一个数组的每一项。因此,只有当您的输入类似于
aaaaaaa时它才会起作用。就做function palindrome(str) {return str === str.split("").reverse().join("");} -
这是对回文的大量代码检查,哈哈!但是您可能想在发布问题之前先搜索论坛。
-
@NiettheDarkAbsol 你评论中多余的“=”让我失望了。 :D.. *按照下面的 khauri McClain 点编辑,我学到了一些新东西。
-
@schar 这不是一个额外的
=这是一个strict equality comparison
标签: javascript