gpt4 book ai didi

javascript - 在 JavaScript 中反转整数

转载 作者:行者123 更新时间:2023-12-03 19:31:33 25 4
gpt4 key购买 nike

我编写了以下代码来反转 JavaScript 中的整数。它工作正常,但在输入 -900000 时返回 0。有谁知道哪里出了问题?

/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var negative_number= false;
var k;
var new_string;
if(x<0){
negative_number = true;
x=Math.abs(x);
}
var n = x.toString(); // convert from number to string
// Step 1. Use the split() method to return a new array
var splitString = n.split(""); // var splitString = "hello".split("");
// ["h", "e", "l", "l", "o"]
if (negative_number)
{
for (var i=0; i< splitString.length-1; i++)
{
splitString[i]=splitString[i+1];
}
}
// Step 2. Use the reverse() method to reverse the new created array
var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
// ["o", "l", "l", "e", "h"]

// Step 3. Use the join() method to join all elements of the array into a string
var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join("");
// "olleh"
//return joinArray;
var number = Number(joinArray);
if (negative_number)
number= -Math.abs(number);
//Step 4. Return the reversed string
return number;
};

最佳答案

一些优秀的答案已经发布。

我决定展示一个稍微不同的变体:

  • 使用“递归”处理负面情况
  • 函数的其余部分只关注正面案例
  • 将每个中间计算分成单独的行

这是一个带有注释的代码片段,说明了 -123 如何变成 -321:

function reverse(x) {
if (x < 0) return -reverse(-x); // reverse(-123) === -reverse(123)
var str = x.toString(); // "123"
var strArray = str.split(""); // [ "1", "2", "3" ]
var revArray = strArray.reverse(); // [ "3", "2", "1" ]
var rev = revArray.join(""); // "321"
return Number(rev);
}

console.log(reverse(-123)); // Outputs: -321
console.log(reverse(0)); // Outputs: 0
console.log(reverse(-900000)); // Outputs: -9

关于javascript - 在 JavaScript 中反转整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com