-1

我正在使用以下代码在 javascript 中对数组进行排序:

 array.sort(function(a,b){
             var score_a = $.fuzzyMatch(a['name'], user).score,
                 score_b = $.fuzzyMatch(b['name'], user).score;

            return score_a < score_b ? -1 : score_a === score_b ? 0 : 1;
       });

排序是获取数组中每一行的“名称”属性,并通过我的模糊匹配函数运行它并返回一个分数,以便在数组顶部返回最相关的匹配项。

但是,我希望在这种情况下包含另一个属性,a['folcode']或者b['folcode']

所以总结一下,我如何修改我的代码以始终将包含的行放在['folcode'] == 4顶部,按最佳['name']匹配排序,然后返回['folcode'] == 3行,也按最佳名称匹配排序......等等......

4

1 回答 1

1

如果您想按folcode主要和name each中进行排序folcode,您将不得不产生一个比较,folcode就像您当前正在做的那样,但仅在等于条件时name返回名称比较的值。

function(a,b) {

    var code_a = a.folcode;
    var code_b = b.folcode;

    var score_a = $.fuzzyMatch(a.name, user).score;
    var score_b = $.fuzzyMatch(b.name, user).score;

    if(code_a === code_b)
        return score_a < score_b ? -1 : score_a === score_b ? 0 : 1;

    return code_a < code_b ? -1 : 1;

}
于 2012-10-15T08:19:33.523 回答