任何人都可以重构这个以数字作为参数并反转其数字的函数吗?

时间:2017-08-11 02:24:17

标签: javascript function

给定一个数字,写一个函数来输出其反向数字。 (例如,给出123答案是321)

数字应该保留他们的标志;即反转时负数仍应为负数。

这是我的解决方案:

function reverseNumber(n) {
  var split = (""+n).split("");
  var reverse = split.reverse();
  var last = reverse.join('');
  if(reverse[reverse.length - 1] == '-') {
    var almost = reverse.pop();
    var close = reverse.unshift(almost);
    var last2 = reverse.join('');
    var rev = Number(last2);
    return rev;
  } else {
    var pos = Number(last);
    return pos;
  }
}

太长了。我想知道是否有人能提出更短的解决方案。

3 个答案:

答案 0 :(得分:0)

%backupdirname%

答案 1 :(得分:0)

您可以使用.reduceRight().join()+运算符

+((...props) => props.reduceRight((a, b) => a.concat(b), []))(1,2,3).join("")

答案 2 :(得分:0)

How do you reverse a string in place in JavaScript?

提供了一些有用的信息

由于这已经转移到代码高尔夫,另一个答案不会受到伤害。



function revNum(n) {
  return (n<0? -1 : 1) * ('' + Math.abs(n)).split('').reverse().join('');
}

[-12.3, 345.23, -0.765, 1.23e5].forEach(n=>console.log(n + ' : ' + revNum(n)));
&#13;
&#13;
&#13;