0

RDBMSで理想的に処理できる問題がありますが、Javascriptで必要です。GoogleのGearsを使用するつもりでしたが、それ以降、開発中ではないことがわかりました。

私が以下を達成できるいくつかの方法は何ですか?

JSONオブジェクトとしてたくさんの製品があります。それぞれに並べ替える3つのプロパティがあり、どのプロパティを他のプロパティよりも先に並べ替えるかを変更できるようにしたいと思います。SQLでは、私は書いたorder by weight, height, power、または他の組み合わせを持っていたかもしれません。

ソリューションが強力であればあるほど、要件を拡張したいと思うでしょう。これらはすべてRDBMSでより簡単に処理できますが、サーバー側の使用にフォールバックするため、クライアント側のオプションのみを知りたいと思います。どうしても必要な場合はRDBMS。

ありがとう

編集:考えてみると、Array.sort(sortFn)を使用するだけで実際には非常に簡単かもしれませんか?...

4

2 に答える 2

1

アダム、そしてみんなに感謝します、私は私の要件が進化するときのためにそれらを覚えています。とにかく、これが私が思いついた解決策です...

function compare(a, b){
    var weight =    a.weight - b.weight;
    var power  =    a.power  - b.power;
    var height =    a.height - b.height;

    if (weight)  return weight;
    if (power)    return power;
    if (height)   return height;
    return 0;
};
objArr.sort(compare);

再度、感謝します

于 2013-01-21T04:54:52.330 に答える
0

Javascript 多基準 / 多パラメータソート

JavaScript の複数基準の並べ替えを実行する最も簡単な方法は、基準を連結して 2 つの文字列として比較することです。

function sortByCriteria(data, criteria) {
    return data.sort(function (a, b) {

        var i, iLen, aChain, bChain;

        i = 0;
        iLen = criteria.length;
        for (i; i < iLen; i++) {        
            aChain += a[criteria[i]];
            bChain += b[criteria[i]];
        }

        return aChain.localeCompare(bChain);
    });
}

http://jsfiddle.net/oahxg4u3/6/

于 2014-12-19T23:42:12.103 に答える