在下面的代码中,它应该取一个数字并将其反转
我试图在没有num = num + ""
的情况下进行此操作,但它不起作用
为什么我需要在分割数字之前添加它?
function reverseANumber(num) {
function reverse() {
num = num + "";
var newNum;
newNum = num.split("").reverse().join();
return newNum;
}
return reverse(num);
}
console.log(reverseANumber(34521));
答案 0 :(得分:2)
行前
num = num + "";
num
实际上是Number,并且没有.split
功能。将num
转换为字符串后(通过将其与空字符串连接起来),它具有.split
函数,并且可以解决问题。 (更清晰的方法是num.toString()
)
您的代码中还有另一个错误:.join
将使用您提供的参数加入数组的元素,如果没有,则使用逗号。 (即[1,2,3]
=> '1,2,3'
)。您需要为此函数(和parseInt / parseFloat)提供一个空字符串.join
才能正常工作。
值得注意的是,您的函数实际上并不返回数字,而是一个看起来像数字的字符串。这可能会导致问题。您可以使用parseInt或parseFloat以数字形式返回变量。
清理了一下(函数reverse
有点多余),你的函数变为:
function reverseANumber(num) {
var numAsString = num.toString();
var reversedNumAsString = numAsString.split('').reverse().join('');
return parseFloat(reversedNumAsString, 10);
}
答案 1 :(得分:0)
变量num可能是一个整数,带有+""你把它解析成字符串。
如果你想跳过+"",那么你必须将一个字符串传递给该函数,如下所示:
var num = "35";// instead of 35
reverse(num);
答案 2 :(得分:0)
因为num
是一个数字。对于拆分,您需要将数字转换为字符串。这就是您在调用方法num + ""
split
的原因
答案 3 :(得分:0)
function reverse(myNum){
myNum= myNum.split("").reverse().join("");
return myNum;
}
console.log(reverse("34521"));
输出:
12543