3 回答

TA貢獻1807條經(jīng)驗 獲得超9個贊
這三行交換了由 和 索引的元素。i
i+1
你不能只寫
array[i] = array[i+1]; array[i+1] = array[i];
交換元素,因為在此版本中,在執(zhí)行第一行后,原始值 丟失,因為它已被值 覆蓋。array[i]
array[i+1]
要解決此問題,可以將該值存儲在臨時變量(此處調(diào)用)中,以便以后可以將其分配給 。array[i]
temp
array[i+1]

TA貢獻1936條經(jīng)驗 獲得超7個贊
它正在交換數(shù)組中當前和下一個元素的值。
像這樣的事情的問題
1. array[i] = array[i+1];
2. array[i+1] = array[i]
在第一次賦值中,您用 array[i+1] 覆蓋 array[i] 的常規(guī)值,以便您在第二行中分配相同的 array[i+1] 值,因此您使用 temp 變量來存儲 array[i] 的原始值,使其在第 1 行的賦值之后具有此值
1 let temp = array[i];
2 array[i] = array[i+1];
3 array[i+1] = temp;
在第一行中,您基本上存儲了 array[i] 的原始值,以便稍后使用它來重新組合 array[i+1]

TA貢獻1872條經(jīng)驗 獲得超4個贊
如果要在數(shù)組中的某個位置放置一個新值,則該位置的舊值將被覆蓋。
const arr = [0, 1, 3, 2]
我們將使用這個數(shù)組作為示例。如果我想交換 和 的值,我可以從設(shè)置結(jié)果開始,結(jié)果如下。您會注意到該值現(xiàn)在丟失了!arr[2]arr[3]arr[2] = arr[3]3
const arr = [0, 1, 2, 2]
這就是創(chuàng)建變量的原因。臨時存儲將被覆蓋的值。下面是索引 2 的示例:temp
// array = [0, 1, 3, 2]
let temp = array[2];
// temp = 3
// array = [0, 1, 3, 2]
array[2] = array[2+1];
// temp = 3
// array = [0, 1, 2, 2]
array[2+1] = temp;
// array = [0, 1, 2, 3]
添加回答
舉報