前言:正好这两天正在做一个功能,需要在前台进行排序展示,因为是动态的,后台排序不能搞定,只能咋前台通过JS来进行排序展示,所以我们用sort()来解决这个问题,sort不仅能给数组,对象,集合进行简单的排序,还能进行双重,多重排序。哈哈.... 不讲废话了

JavaScript双重排序

1. 语法详解

  Array.sort((a, b) =>{})

  JS中sort 函数需要传入一个函数,例如 sort((a,b)=>{ }). a, b 为需要排序的数组的两个值,可以根据x, y的大小进行返回:

  负值,如果所传递的第一个参数比第二个参数小。

  零,如果两个参数相等。

  正值,如果第一个参数比第二个参数大。

2. 示例

 sortName(sortObj){
// this.addOrderData.product_list.sort(this.compare(sortObj.prop, sortObj.order))
this.addOrderData.product_list.sort((a, b)=>{ if (sortObj.order == 'ascending') {
if (a["product_name"] === b["product_name"]) {
return a["lot"] > b["lot"] ? 1 : a["lot"] < b["lot"] ? -1 : 0;
} else {
return a["product_name"] > b["product_name"] ? 1 : -1;
}
}else {
if (a["product_name"] === b["product_name"]) {
return a["lot"] > b["lot"] ? 1 : a["lot"] < b["lot"] ? -1 : 0;
} else {
return a["product_name"] < b["product_name"] ? 1 : -1;
}
} }) }

Js中sort 函数需要传入一个函数,例如 sort(function(x,y){ }). x, y 为需要排序的数组的两个值,可以根据x, y的大小进行返回:

负值,如果所传递的第一个参数比第二个参数小。

零,如果两个参数相等。

正值,如果第一个参数比第二个参数大。

3.注意事项

在IE中JS不支持Array.sort((a, b) =>{})可换成Array.sort(function(a, b) {})

最新文章

  1. 用扩展开发一个PHP类
  2. WordPress页面Page和文章Post的相互转换
  3. oracle 前滚和回滚
  4. 初识ASP.NET CORE:三、Middleware
  5. struts2异常记录--java.lang.IllegalStateException
  6. Spark on Yarn遇到的问题及解决思路
  7. Android studio教程:[4]真机测试
  8. android 简单粗暴的注解初始化View学习
  9. 解决前端开发sublime text 3编辑器无法安装插件的问题
  10. 从Openvswitch代码看网络包的旅程
  11. 2019年 Gratner数据分析平台对比 - PowerBI大幅领先
  12. kaptcha生成java验证码
  13. hadoop基础与实践--流程解惑
  14. oracle sqlplus命令详解
  15. Connection reset by peer原理解析
  16. 【BZOJ3202】项链(莫比乌斯反演,Burnside引理)
  17. ansible源码安装
  18. linux命令学习之:vim
  19. log4j(四)——如何控制不同风格的日志信息的输出?
  20. centos 7 yum configuration; yum localinstall

热门文章

  1. NSIS打包electron程序为exe安装包
  2. Anaconda 配置 Python 环境
  3. PermissionUtils
  4. 代码实现:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
  5. rocketMQ retry 消息的实现
  6. Appium+python自动化-输入中文
  7. PHP结合Ueditor并修改图片上传路径 微信小程序 拼接域名显示图片
  8. 微信小程序---设备信息
  9. CentOS定时备份MySQL数据库
  10. Oracle 笔记(一)