我正在学习JavaScript,我真的很想知道为什么这个功能不起作用。请解释一下我在这里做错了什么以及如何让它发挥作用。我真的希望保持简单,因为我能理解我做错了什么。
var input = prompt("Write a number");
function around() {
for (var x = 0; x < input.lenght ; x++) {
console.log(input.reverse());
}
}
around();
答案 0 :(得分:2)
这应该可以解决问题。字符串没有反向()方法,但数组有:
function around() {
var input = prompt("Write a number");
if (!parseInt(input)) {
return null; // Or do something with bad input
}
return parseInt(input.split('').reverse().join(''));
}
答案 1 :(得分:1)
当我阅读你的函数时,它似乎会打印你的反向字符串n次,其中n是字符串的长度。在任何情况下,看起来你都试图反转一个字符串,所以让我们继续前进。
没有&#34;反向&#34;函数内置于Javascript以反转字符串。但是,有一种方法可以反转数组(使用.reverse())。您可以非常轻松地将字符串拆分为数组,即使用input.split(&#34;&#34;)。然后,您可以反转数组,并在其上调用.join(&#34;&#34;),将您的数组重新转换为字符串。
但如果你对此没有任何说明,我真的无法确定你希望你的功能做什么。
答案 2 :(得分:1)
prompt中返回的是String类型,reverse()方法用于Array类型。
因此,反转字符串的最简单方法是将其拆分为字符数组,将其反转,将字符连接回字符串,然后根据需要将其解析为数字。
var input = prompt("Write a number");
function around() {
input = parseInt(input.split('').reverse().join(''));
console.log(input);
}
around();
答案 3 :(得分:0)
你的问题是输入是一个字符串,而字符串原型没有objc_msgSend
方法。要做到这一点,您必须执行reverse
之类的操作。 input.split('').reverse().join('')
将字符串转换为字符数组。 split('')
是一个可以反转数组的Array方法。 reverse()
将数组的每个元素组合成一个字符串,在每个数组元素之间添加参数(在本例中为空字符串)。