自定义排序返回的数据

custom sort returned data

本文关键字:数据 返回 排序 自定义      更新时间:2023-09-26

我有以下javascript和knockout js代码,从xml文件返回三个值:

 var populateCategories = function (myId, mySize) {
    self.categoryOptions([]); //Empty the observable array
    var myCategories = getCategories(myId);
    var i = null;
    for (i = 0; myCategories.length > i; i += 1) {
        if (myCategories[i].ProductSize == mySize) {
            self.categoryOptions.push({ "label": myCategories[i].Reference });
        }
    }

返回值(myCategories[i]. reference)是"Best","Better"answers"Good"。我需要排序这些值总是"好","更好","最好"。按字母顺序排序将不起作用,因为它将返回"Good","Best","Better"。

返回的数据没有另一个键/字段可以用来对它们进行排序,因此我需要在for循环中以某种方式手动执行此操作。

我如何排序数据,使最终结果是"好","更好","最好"?

在进行比较时使用sort函数并将字符串映射为数字。

self.categoryOptions.sort(function(a,b){
   var values = {Good: 0, Better: 1, Best: 2};
   return values[a.label] - values[b.label];
});