JavaScriptで整数を反転させるために次のコードを書いています。それはうまく動作しますが、-900000の入力が与えられたときに0を返します。誰が何が間違っているかも知っていますか?JavaScriptの整数を逆にする
/**
* @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;
};
このforループのポイントは何ですか? 'for(var i = 0; i
あなたは何を正確に達成しようとしていますか?これは何を期待していますか?また-1002を渡すと-2200になります。 – Jorg
@StephenQuan:負の数の場合は、負の符号を取り除く必要があります。ああ、私はすでに上記のことをしていることがわかります。 –