如何按多个字段对对象数组进行排序
按多个字段对对象数组进行排序可以通过链接多个比较来实现函数。
示例
考虑以下表示房屋的对象数组:
var homes = [ {"h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500"}, {"h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250"}, {"h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699"}, {"h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500"} ];
按城市(升序)对此数组进行排序,然后按价格(降序),使用以下方法:
homes.sort(function (a, b) { // Compare city fields var cityDelta = a.city.localeCompare(b.city); if (cityDelta !== 0) { // If cities differ, return comparison result return cityDelta; } // If cities are the same, compare prices in descending order return b.price - a.price; });
通用方法
此方法可以推广到任意数量的排序字段。按所需顺序迭代所需的排序字段,并比较每个字段的值。如果找到非零增量,则返回结果;否则,继续下一个字段。
以上是如何按多个字段对对象数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!