3 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
您在保存數(shù)組的值之前覆蓋了數(shù)組的第二個(gè)元素,因此[1]使用您的方法時(shí) at 的值將永遠(yuǎn)丟失。
您可以先保存該值,然后將其分配給arr[0]
function swap(arr) {
const item1 = arr[1];
arr[1] = arr[0];
arr[0] = item1;
return arr;
}
console.log(swap([1, 2, 3, 4]));
或者,更優(yōu)選地,使用解構(gòu)來(lái)避免需要單獨(dú)的變量:
const swap = ([item0, item1, ...rest]) => [item1, item0, ...rest];
console.log(swap([1, 2, 3, 4]));
或者,如果您必須改變現(xiàn)有數(shù)組:
function swap(arr) {
[arr[0], arr[1]] = [arr[1], arr[0]];
return arr;
}
console.log(swap([1, 2, 3, 4]));

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要一個(gè)臨時(shí)變量,而不是數(shù)組而不是循環(huán)來(lái)執(zhí)行此操作
var temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
tempArr并且arr是對(duì)同一對(duì)象的引用(您可以在此處了解更多信息)。
在您的情況下,您不需要使用第二個(gè)數(shù)組,您只需要存儲(chǔ)一個(gè)臨時(shí)值,因此您可以執(zhí)行以下操作:
var temp = arr[i + 1]
arr[i + 1] = arr[i]
arr[i] = temp
添加回答
舉報(bào)