我有两个字符串。第一个是正常字符串,第二个我想成为第一个反转字符串,但在控制台中我没有看到像逗号一样列出的第一个字符串。我该如何解决这个问题?
window.onload = function(){
inputBox = document.getElementById("myText");
btn = document.getElementById('sub');
btn.addEventListener("click",function(event){
event.preventDefault();
findPalindromes(inputBox.value);
});
str = inputBox.value;
function findPalindromes(str) {
var words = str.split(" ");
for (var i = 0; i < words.length - 1; i++) {
words[i] += " ";
}
console.log(words);
var newString = "";
for (var i = words.length - 1; i >= 0; i--) {
newString += words[i];
}
console.log(newString);
}
}
答案 0 :(得分:5)
如果你真的只想知道字符串是否是回文,你可以做一些简单的事情:
function isPalindrome(str) {
return str.toLowerCase() === str.toLowerCase().split('').reverse().join('');
}
答案 1 :(得分:1)
第一个for
循环不是必需的。您不需要将空格字符" "
连接到数组的元素,其中变量赋值i
var i = 0;
和条件
i < words.length - 1;
在到达数组的最后一个元素之前停止。
var newString = "";
for (var i = words.length - 1; i >= 0; i--) {
newString += words[i] + " ";
}
console.log(newString);
答案 2 :(得分:1)
在“普通”字符串示例中,您将words
打印到控制台。我们先来看看words
是什么:var words = str.split(" ");
String.split()函数返回一个字符串数组。所以你的“普通”字符串实际上是一个字符串数组(括号[]
和控制台输出中逗号分隔的字符串表示这个)。
在第二个示例中,您正在记录newString
。让我们来看看它来自哪里:var newString = "";
newString
是一个字符串。如果您希望它是words
之类的字符串数组,则可以使用var newString = [];
声明它。数组不支持+=
,因此newString += words[i];
将成为newString.push(words[i]);
上面解释了如何让newString
表现得像words
,你写的代码不是寻找回文词,而是回文句:“鲍勃是鲍勃”不是回文(反过来是“boB si boB”)但它可能是回文句(如果存在这样的事情)。
答案 3 :(得分:0)
感谢所有人,我为这个问题编写了这个解决方案。我希望这是正确的答案。
window.onload = function(){
inputBox = document.getElementById("myText");
btn = document.getElementById('sub');
btn.addEventListener("click",function(event){
event.preventDefault();
findPalindromes(inputBox.value);
});
str = inputBox.value;
function findPalindromes(str) {
var words = str.split(" "),
newString = [];
for (var i = 0; i < words.length - 1; i++) {
if ((words[i] === words[i].split('').reverse().join('')) === true) {
newString.push(words[i]);
}
}
console.log(newString);
}
}
答案 4 :(得分:-1)
var words = " ";
function reverse_arr(arr){
var i = arr.length - 1;
while(i >= 0){
words += a[i] + " ";
i--;
}
return words;
}