0

我有一个问题可以由 RDBMS 理想地处理,但我需要它在 Javascript 中。我打算使用谷歌齿轮,但后来我发现它不再处于开发阶段。

我可以通过哪些方法实现以下目标?

我有很多产品作为 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 回答