前言:正好这两天正在做一个功能,需要在前台进行排序展示,因为是动态的,后台排序不能搞定,只能咋前台通过JS来进行排序展示,所以我们用sort()来解决这个问题,sort不仅能给数组,对象,集合进行简单的排序,还能进行双重,多重排序。哈哈.... 不讲废话了
JavaScript双重排序
1. 语法详解
Array.sort((a, b) =>{})
JS中sort 函数需要传入一个函数,例如 sort((a,b)=>{ }). a, b 为需要排序的数组的两个值,可以根据x, y的大小进行返回:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
2. 示例
1 sortName(sortObj){ 2 // this.addOrderData.product_list.sort(this.compare(sortObj.prop, sortObj.order)) 3 this.addOrderData.product_list.sort((a, b)=>{ 4 5 if (sortObj.order == 'ascending') { 6 if (a["product_name"] === b["product_name"]) { 7 return a["lot"] > b["lot"] ? 1 : a["lot"] < b["lot"] ? -1 : 0; 8 } else { 9 return a["product_name"] > b["product_name"] ? 1 : -1; 10 } 11 }else { 12 if (a["product_name"] === b["product_name"]) { 13 return a["lot"] > b["lot"] ? 1 : a["lot"] < b["lot"] ? -1 : 0; 14 } else { 15 return a["product_name"] < b["product_name"] ? 1 : -1; 16 } 17 } 18 19 }) 20 21 }
Js中sort 函数需要传入一个函数,例如 sort(function(x,y){ }). x, y 为需要排序的数组的两个值,可以根据x, y的大小进行返回:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。