2

この質問はこのコミュニティで何度も聞かれていることは知っていますが、私は長い間働いているので、ラップトップのモニターはほとんど見えません。いくつかのヘルプplz。

このオブジェクトの配列を並べ替えて、配列に自動的に挿入されているすべての指定された値の最高値と最低値を取得したいと思います。

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);
}

この関数は私には機能しません...1次元配列で機能します

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

私はあなたの助けに感謝します。

4

1 に答える 1

2

編集

サブ配列の合計で並べ替えるには、次を使用できます。

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('+')); 
}); 

オリジナル

2次元配列を並べ替えようとしているようです。

ソート関数で2次配列の位置を指定する必要があります。

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]});
于 2013-02-28T03:43:04.510 に答える