javascript - 按属性按优先级排序

标签 javascript sorting ember.js

我有想要排序的项目,我的项目在模型上具有计算属性,包括获胜出价已关闭观看

这些属性中的每一个都是 true 或 false

我想对项目进行排序,以便所有获胜项目位于第一,然后是所有投标项目,然后是所有正在观看的项目,然后是所有已关闭的项目。

我怎样才能实现这个目标?我是否需要在一个排序函数中完成所有操作,还是可以指定多个函数作为排序依据?

我已经尝试过这个方法来获胜,但我不知道接下来该何去何从

sortedItems: Ember.computed.sort('filteredItems',function(a,b){
  if(a.get('winning') == true && a.get('winning') != b.get('winning')){
    return -1;
  }
  if(a.get('winning') == b.get('winning')){
    return 0;
  }
  if(a.get('winning') == false && a.get('winning') != b.get('winning')){
    return 1;
  }
}),

最佳答案

我建议使用这样的排序功能。它通过对出价状态进行分组来排序。

function (a, b) {
    var status = { winning: 1, bidding: 2, closed: 3, watching: 4 };
    return status[a.bidStatus] - status[b.bidStatus];
}

关于javascript - 按属性按优先级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35321771/

相关文章:

javascript - 在jquery中结合toggle和fadeTo

javascript - 如何在 Javascript 中循环函数?

javascript - 打印 javascript 字符串对象的属性和方法

algorithm - 迭代/非递归合并排序

使用带函数的 Order By 计算两点之间的距离(long,lat)时 MySQL 查询速度变慢

Javascript - 比较日期的最佳方式

javascript - Ember 和外部 js 脚本

javascript - Ember 和 Require.JS 优化器 "Error: Could not find module jquery"

javascript - 捕获按键并传递值 javascript

routes - 嵌套路由从链接触发,而不是从 URL 更改触发