如何根据javascript中的两个属性对数组进行排序

时间:2012-10-15 08:15:01

标签: javascript

我使用以下代码在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;
       });

排序采用数组中每一行的'name'属性,并通过我的fuzzymatch函数运行它并返回一个分数,以便在数组顶部返回最相关的匹配。

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

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

1 个答案:

答案 0 :(得分:1)

如果您想主要按folcode排序,而name 每个folcode排序,则必须对{{1}进行比较就像你目前为folcode所做的那样,但仅在等于条件时返回名称比较的值。

name