我使用以下代码在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
行,也按以下顺序排序:最佳名称匹配...等...
答案 0 :(得分:1)
如果您想主要按folcode
排序,而name
每个folcode
排序,则必须对{{1}进行比较就像你目前为folcode
所做的那样,但仅在等于条件时返回名称比较的值。
name