我想在教程之后反转一个数字。首先我将一个数字作为参数传递。我已将数字转换为String with String函数。然后我使用split(“”)。reverse()。join(“”)来反转数字。 我的代码如下:
<script type="text/javascript">
function reverse_the_string(num) {
num = String(num);
// str = num.toString;
num.split("").reverse().join("");
return;
}
console.log(reverse_the_string(56789));
</script>
但是我得到一个未定义的错误?任何人都能解释什么是错的吗?
答案 0 :(得分:4)
您不会返回结果。使用
return num.split("").reverse().join("");
如果仅使用return,则会返回undefined
。
function reverse_the_string(num) {
return String(num).split("").reverse().join("");
}
document.write(reverse_the_string(56789));
&#13;
警告:反转仅适用于小数字!
答案 1 :(得分:1)
尝试一下(递归方法)
function reverseNum(num) {
let x = Math.pow(10, (num + '').length - 1);
while (num > 0) return (num % 10) * x + reverseNum(Math.floor(num / 10));
return 0;
}
console.log(reverseNum(432));
答案 2 :(得分:0)
将数字转换为字符串并反转字符串的解决方案是一个很好的解决方案,但是它不能涵盖所有情况。有两种情况需要解决:
使用常规功能
var reversed = parseFloat(num.toString().split("").reverse().join()) * Math.sign(num);
使用箭头功能
var reversed = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num);
答案 3 :(得分:-2)
为了反转数字/字符串,您可以参考以下方法:
(不使用DECLARE @x xml; SET @x='
<guids>
<guid>1000000075</guid>
<guid>1000000102</guid>
<guid>1000000052</guid>
</guids>';
SELECT T.c.value('.', 'nvarchar(10)') AS result
FROM @x.nodes('/guids/guid') T(c)
和slice()
方法)
substring()