我的一个程序遇到问题,似乎无法找出问题所在。基本上,我正在寻找一个数组,每个元素上存储着多种数据类型。我想创建一个可以通过Bubblesort排序的函数,该函数根据我要排序的内容将另一个比较函数作为参数。
function Autos(year) {
this.year = year;
}
var autos = [
new Autos(1995),
new Autos(1990),
new Autos(2000),
new Autos(2010),
new Autos(2005),
new Autos(2008)
];
function Sorty(sortingMethod, array) {
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < (array.length - i - 1); j++) {
if (0 == sortingMethod(array[j], array[j + 1]));
// if(array[j].year < array[j+1].year) //Sort works using this
{
let temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
console.log(array[0].year, array[1].year, array[2].year, array[3].year, array[4].year, array[5].year);
}
function sortByYear(x, y) {
if (x.year < y.year) {
return 0;
} else {
return 1;
}
}
Sorty(sortByYear, autos);
如果我不使用其他排序功能进行排序,则排序符合预期。但是,当我使用排序功能时,数据不整齐。我怀疑这可能是关闭问题,但是我对该主题不满意。任何输入将不胜感激。
具有排序功能的结果是:
2008 2005 2010 2000 1990 1995
没有排序功能,结果是:
2010 2008 2005 2000 1995 1990
答案 0 :(得分:0)
那是; if语句上的错字。谢谢