在JavaScript中拆分数字时

时间:2015-04-18 23:07:33

标签: javascript

在下面的代码中,它应该取一个数字并将其反转

我试图在没有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));

4 个答案:

答案 0 :(得分:2)

行前

num = num + "";

num实际上是Number,并且没有.split功能。将num转换为字符串后(通过将其与空字符串连接起来),它具有.split函数,并且可以解决问题。 (更清晰的方法是num.toString()

您的代码中还有另一个错误:.join将使用您提供的参数加入数组的元素,如果没有,则使用逗号。 (即[1,2,3] => '1,2,3')。您需要为此函数(和parseInt / parseFloat)提供一个空字符串.join才能正常工作。

值得注意的是,您的函数实际上并不返回数字,而是一个看起来像数字的字符串。这可能会导致问题。您可以使用parseIntparseFloat以数字形式返回变量。

清理了一下(函数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)

split字符串为了使其成为数组,然后使用reverse

function reverse(myNum){
myNum= myNum.split("").reverse().join("");
return myNum;
}

console.log(reverse("34521"));

输出:

12543

CODEPEN DEMO