該代碼僅記錄相同的陣列。這里似乎有什么問題?我正在使用 VS 代碼。
function bubbleSort(array) {
for (let i = 0; i < array.length - 1; i ) {
for (let j = 0; j < array.length - 1 - i; j ) {
if (array[j] > array[j 1]) {
[array[j], array[j 1] = array[j 1], array[j]];
}
}
}
return array;
}
let arr1 = [9, 4, 6, 4, 3];
console.log(bubbleSort(arr1));
uj5u.com熱心網友回復:
它應該是:
[array[j], array[j 1]] = [array[j 1], array[j]];
代替:
[array[j], array[j 1] = array[j 1], array[j]];
密切注意方括號的開始和結束位置。
您當前的代碼:
- 為自身分配一個陣列索引
- 創建一個包含 3 個元素的陣列
- 并立即扔掉
你真正想要的是一個解構賦值。(感謝@Reyno 提供鏈接!)
uj5u.com熱心網友回復:
Javascript 不是 python,你不能像你正在做的那樣分配 2 個陣列值,你需要一步一步地用臨時值來替換 2 個值
function bubbleSort(array) {
for (let i = 0; i < array.length - 1; i ) {
for (let j = 0; j < array.length - 1 - i; j ) {
if (array[j] > array[j 1]) {
let temp = array[j]
array[j] = array[j 1]
array[j 1] = temp
}
}
}
return array;
}
let arr1 = [9, 4, 6, 4, 3];
console.log(bubbleSort(arr1));
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/369189.html
標籤:javascript 算法 排序
上一篇:動態清理字串
