使用for循环交换数字

问题描述 投票:0回答:2

使用 for 循环,我必须编写代码来交换通过 javascript 中的用户输入给出的数字的第二个和第三个数字。

for ( i = 0; i < entNum.length; i++) {
if (i === 0) num2 = entNum[i];
    else if (i === entNum.length - 2) {
        newNum = newNum + num2;
        newNum = entNum[i] + newNum;
    }
else newNum = newNum + entNum[i];
}
console.log("New number:" + newNum)

这是我能够生成的代码,但是此代码交换了数字中的第一个和第二个数字,我似乎无法以针对第二个和第三个数字的方式更改代码,我也不能 100% 理解 for 循环和 if 语句。所以详细的解释会很有用。

javascript for-loop if-statement swap
2个回答
0
投票

通常您希望为您制作的东西创建函数,以便可以重用它。在这里,我将您的号码转换为字符串,然后将其拆分为数组,交换数字并连接回来。

function swap(val, x, y) {
    let arr = (val + "").split("");
    let tmp = arr[x];
    arr[x] = arr[y];
    arr[y] = tmp;
    return parseInt(arr.join(""));
}

console.log(swap(12345, 1, 2));


0
投票

你甚至不需要循环。您可以使用数字的字符串表示形式来完成此操作。

//make sure v1 is before b2
let str = "" + entNum;
let char1 = entNum.charAt(v1);
let char2 = entNum.charAt(v2);
str = str.substr(0,v1) + v2 + str.substring(v1 + 1, str.length) + v1;
entNum = parseInt(str);
© www.soinside.com 2019 - 2024. All rights reserved.