javascript - 如何在 Javascript 中对对象数组进行排序?

标签 javascript arrays multidimensional-array

我知道这个问题在这个社区中已经被问过很多次了,但由于我工作了很长时间,我几乎看不到笔记本电脑的显示器。请提供一些帮助。

我想对这个对象数组进行排序,以获得自动插入到数组中的所有给定值的最高值和最低值。

var catesArrayHolder = new Array();
for(var chartGetter=1; chartGetter <= num; chartGetter++){
    var catesArray = new Array();
    for(var chartGetterArray=1; chartGetterArray <= series; chartGetterArray++){
        idOfInput  = "cate"+chartGetter+"_series"+chartGetterArray;
        values = $("#"+idOfInput).val();
        if(values == ""){
            values = 0;
        }

        catesArray.push(values);
    }
    catesArrayHolder.push(catesArray);
}

这个功能对我不起作用... 它适用于一维数组

catesArrayHolder.sort(function(a,b){return a-b});

感谢您的帮助。

最佳答案

编辑

要对子数组的总和进行排序,您可以使用:

Example

JS

var twoDArray = [[9,1],[5,3],[8,2]];

twoDArray.sort(function(a, b){
    //sort by sum of sub array
    return eval(a.join('+')) - eval(b.join('+')); 
}); 

alert(JSON.stringify(twoDArray)); 

所以你的代码看起来像:

catesArrayHolder.sort(function(a, b){
    return eval(a.join('+')) - eval(b.join('+')); 
}); 

原始

看起来您正在尝试对二维数组进行排序。

您需要在排序函数中指定辅助数组位置。

Example

JS

var twoDArray = [[9,1],[5,3],[4,2]];

twoDArray.sort(function(a, b){
    //Sort by the first value in the sub array
    return a[0] - b[0]; 
}); 

alert(JSON.stringify(twoDArray)); 

twoDArray.sort(function(a, b){
    //sort by the second value in the sub array
    return a[1] - b[1]; 
}); 

alert(JSON.stringify(twoDArray)); 

因此,为了让您的代码正常工作,您需要一些具有以下效果的东西:

var posToSortOn = 0; //position in the sub arrays that dictates sort precedence 
catesArrayHolder.sort(function(a,b){return a[posToSortOn]-b[posToSortOn]});

关于javascript - 如何在 Javascript 中对对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126924/

相关文章:

javascript - 为什么我不能在 JS 中复制这个二维数组?我怎样才能制作副本?

javascript - date.toLocaleDateString 不是函数

arrays - 在 MATLAB 中分割向量

javascript - 将数组拆分为无序列表?

javascript - 删除数组上的对象的最佳方法是什么

Java Arraylist 两个不同的列

Javascript : change cell value in 2D array

php - 将多维数组中的重复数组键分组到子数组中

javascript - 砌体实例没有这样的方法 'reload'

javascript - 使用 div 的 anchor 标记设置偏移量