首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript Bubblesort关闭

Javascript Bubblesort关闭
EN

Stack Overflow用户
提问于 2018-08-29 04:35:03
回答 1查看 0关注 0票数 0

我遇到了我的一个程序问题,似乎无法解决问题。基本上,我希望在每个元素上存储一个包含多种数据类型的数组。我想创建一个可以通过bubblesort排序的函数,它根据我要排序的内容将另一个比较函数作为参数。

代码语言:javascript
复制
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);

如果我在不使用附加排序功能的情况下排序,那么排序就像预期的那样。但是,当我使用排序功能时,数据不按顺序排列。我怀疑这可能是一个封闭问题,但我对这个话题感到不舒服。任何输入将不胜感激。

使用排序功能,结果是:

代码语言:javascript
复制
2008 2005 2010 2000 1990 1995

没有排序功能,结果是:

代码语言:javascript
复制
2010 2008 2005 2000 1995 1990
EN

回答 1

Stack Overflow用户

发布于 2018-08-29 13:58:02

这是; if语句上的拼写错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档