我正在嘗試將一個陣列排序為一個新的排序陣列。
const a = [25, 15, 30, 50, 45, 20];
let cheap = 0;
let ordered = [];
const listLength = a.length;
for (let atual = 0; atual < listLength; atual ) {
Ordenador(a);
}
function Ordenador(arr){
// let cheap = 0;
for (let i = 0; i < arr.length; i ) {
if(arr[i] < arr[cheap]) {
cheap = i;
}
}
ordered.push(arr[cheap]);
arr.splice(cheap,1);
}
如果我將cheap變數設為全域變數,則新的回傳陣列為
[ 15, 20, undefined, undefined, undefined, undefined ]
但是當cheap變數在函式內部時,它會按預期作業!
cheap我不明白為什么當變數在全域范圍內時它不起作用。
uj5u.com熱心網友回復:
因為,在回圈中,在區域變數的情況下和全域變數的情況下,廉價的更改為 0。它不會更改為 0。因此,您的陣列中未定義
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/437145.html
標籤:javascript 排序 范围 全局变量
