前言:正好这两天正在做一个功能,需要在前台进行排序展示,因为是动态的,后台排序不能搞定,只能咋前台通过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的大小进行返回:
负值,如果所传递的第一个参数比第二个参数小。
零,如果两个参数相等。
正值,如果第一个参数比第二个参数大。
3.注意事项
在IE中JS不支持Array.sort((a, b) =>{})可换成Array.sort(function(a, b) {})
作者:JamelAr
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。