初學者在這裏!JavaScript氣泡排列與對象數組
最近偶然發現了一個問題。基本上,程序需要通過其中一個字段對對象數組進行排序,而不用實際使用排序功能。我試着用冒泡排序算法的代碼,但它似乎並不奏效:
var arrayOfPeople = [
{name: "Rick", age: 30, place: 2},
{name: "Alan", age: 25, place: 1},
{name: "Joe", age: 40, place: 4},
{name: "Dave", age: 35, place: 3}
];
function bubbleSort(a,par)
{
var swapped;
do {
swapped = false;
for (var i = 0; i < a.length - 1; i++) {
if (a[i].par > a[i + 1].par) {
var temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
bubbleSort(arrayOfPeople,'age');
for (i = 0; i < arrayOfPeople.length; i++) {
console.log(arrayOfPeople[i]);
}
我的猜測是,我做錯了什麼語法明智的。將欣賞任何反饋。
這可能是你沒有初始化do-while循環開始時,您已交換變量。嘗試用'var swapped = false'替換'var swapped' – mfaerevaag
使用本機'sort'會更快http://stackoverflow.com/a/1129270/1346222 – nk9