我有一个问题,理想情况下由RDBMS处理,但我需要在Javascript中。我打算使用谷歌的齿轮,但我发现它已经不再开发了。
我可以通过以下哪些方法实现以下目标?
我有很多产品作为JSON对象。每个都有3个我想要排序的属性,我希望能够更改哪个属性在其他属性之前排序。在SQL中,我可能写了order by weight, height, power
或其他组合。
解决方案越强大越好,因为我可能希望扩展需求,所有这些都更容易被RDBMS处理,但我只想知道客户端选项,因为我将回归使用服务器端RDBMS,如果绝对必要的话。
由于
编辑:想想看,使用Array.sort(sortFn)实际上可能很简单?...
答案 0 :(得分: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);
再次感谢
答案 1 :(得分: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);
});
}