Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据javascript中的两个属性对数组进行排序_Javascript - Fatal编程技术网

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

如何根据javascript中的两个属性对数组进行排序,javascript,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

我使用以下代码对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;
       });
array.sort(函数(a,b){
var score_a=$.fuzzyMatch(a['name'],user).score,
score_b=$.fuzzyMatch(b['name'],user).score;
返回分数a
排序是获取数组中每一行的“name”属性,并通过fuzzymatch函数运行它,然后返回一个分数,以便在数组顶部返回最相关的匹配项

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


因此,为了解决这个问题,我如何修改代码以始终将包含
['folcode']==4的行放在顶部,按最佳
['name']
匹配排序,然后返回
['folcode']==3行,也按最佳名称匹配排序。。。等等。

如果您希望主要按照
folcode
进行排序,并且在每个
folcode
中按照
name
进行排序,您必须为
folcode
生成一个比较,就像您当前为
name
所做的比较一样,但仅在等于条件下返回名称比较的值

功能(a、b){
var代码_a=a.folcode;
var代码_b=b.folcode;
var score_a=$.fuzzyMatch(a.name,user).score;
var score_b=$.fuzzyMatch(b.name,user).score;
如果(代码a==代码b)
返回分数a
有人能解释一下投票结果吗?我不是故意做错事,一个解释会帮助我学会如何在将来防止这种事情。谢谢,非常好,谢谢!我现在也觉得有点傻,因为解决方案太简单了。无论如何,非常感谢。:)我会尽快记下答案。
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;

}