js 表格根据某个时间字段排序

一、数组排序

数组:dataArr,字段:datetime
dataArr.sort(SortByTimeUp('datetime'));

二、增序排列

function SortByTimeUp(name){
    return function(o,p){
        var a,b;
        if(typeof o==="object"&&typeof p==="object"&&o&&p){
            a=o[name];
            b=p[name];
            if(a===b){
                return 0;
            }if(typeof a===typeof b){
                return a > b?-1: 1;
            }return typeof a > typeof b?-1: 1;
        }else{
            throw("error");
        }
    }
}

三、降序排列

function SortByTimeDown(name){
    return function(o,p){
        var a,b;
        if(typeof o==="object"&&typeof p==="object"&&o&&p){
            a=o[name];
            b=p[name];
            if(a===b){
                return 0;
            }if(typeof a===typeof b){
                return a < b?-1: 1;
            }return typeof a < typeof b?-1: 1;
        }else{
            throw("error");
        }
    }
}

四、js的sort()方法:

  1. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
  2. array.sort()方法默认是升序排序,如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
  • 简单点:比较函数两个参数a和b,返回a-b升序,返回b-a降序

五、升序

var arr = [4,3,6,5,7,2,1];
arr.sort();
console.log(arr);
//输出结果[1,2,3,4,5,6,7]

六、降序

var arr = [4,3,6,5,7,2,1];
arr.sort();
arr.sort(function(a,b){
    return b-a;
});
console.log(arr);
//输出结果[7,6,5,4,3,2,1]

七、对象数组排序

var arr= [ 
    { 'sortNo': 2},
    { 'sortNo': 1},
    { 'sortNo': 5},
    { 'sortNo': 6},
    { 'sortNo': 7},
    { 'sortNo': 3},
    { 'sortNo': 9},
    { 'sortNo': 4},
    { 'sortNo': 0}
];
arr.sort(function(a, b){
        return a.sortNo - b.sortNo;
});
console.log(arr);
//输出结果
//{ 'sortNo': 2}
//{ 'sortNo': 1}
//{ 'sortNo': 5}
//{ 'sortNo': 6}
//{ 'sortNo': 7}
//{ 'sortNo': 3}
//{ 'sortNo': 9}
//{ 'sortNo': 4}
//{ 'sortNo': 0}

八、对象数组多条件排序

var arr= [ 
    { 'sortNo': 2, 'sortNo2': 3},
    { 'sortNo': 1, 'sortNo2': 3},
    { 'sortNo': 5, 'sortNo2': 3},
    { 'sortNo': 6, 'sortNo2': 3},
    { 'sortNo': 7, 'sortNo2': 3},
    { 'sortNo': 3, 'sortNo2': 4},
    { 'sortNo': 3, 'sortNo2': 2},
    { 'sortNo': 3, 'sortNo2': 1},
    { 'sortNo': 3, 'sortNo2': 3},
    { 'sortNo': 8, 'sortNo2': 3},
    { 'sortNo': 4, 'sortNo2': 1},
    { 'sortNo': 4, 'sortNo2': 2}
];
arr.sort(function(a, b){
    if (a.sortNo === b.sortNo) {
            return b.sortNo2 - a.sortNo2;
    } else {
            return a.sortNo - b.sortNo;
    }
});
console.log(arr); 

//输出结果
//{ 'sortNo': 1, 'sortNo2': 3}
//{ 'sortNo': 2, 'sortNo2': 3}
//{ 'sortNo': 3, 'sortNo2': 4}
//{ 'sortNo': 3, 'sortNo2': 3}
//{ 'sortNo': 3, 'sortNo2': 2}
//{ 'sortNo': 3, 'sortNo2': 1}
//{ 'sortNo': 4, 'sortNo2': 2}
//{ 'sortNo': 4, 'sortNo2': 1}
//{ 'sortNo': 5, 'sortNo2': 3}
//{ 'sortNo': 6, 'sortNo2': 3}
//{ 'sortNo': 7, 'sortNo2': 3}
//{ 'sortNo': 8, 'sortNo2': 3}

九、JavaScript概念

JavaScript是一种高级的、解释型的编程语言,用于在网页上实现交互功能。它是一种脚本语言,意味着它可以直接在网页上嵌入并通过网页浏览器来执行。以下是JavaScript的详细概念:

  1. 语法:JavaScript使用类似于Java和C的语法,包含变量、运算符、表达式、语句等,具有面向对象的特性。
  2. 数据类型:JavaScript有许多内置的数据类型,包括数字、字符串、布尔值、数组、对象等。它还支持动态类型,即变量可以在运行时自动改变类型。
  3. 变量:在JavaScript中,可以使用var、let或const关键字声明变量。var关键字在整个函数作用域内都可见,而let和const关键字只在其被声明的块级作用域内可见。
  4. 运算符:JavaScript支持常见的运算符,如算术运算符、比较运算符、逻辑运算符等。
  5. 控制流程:JavaScript提供了if语句、for循环、while循环等控制流程结构,用于控制程序的执行路径。
  6. 函数:JavaScript中的函数是一段可重复使用的代码块,可以接受参数并返回值。函数可以作为变量、参数传递给其他函数,也可以匿名定义。
  7. 对象:JavaScript是一种面向对象的语言,对象是其核心概念之一。对象是一种包含属性和方法的数据结构。
  8. 事件处理:JavaScript可以通过DOM(文档对象模型)来操作网页上的元素,并对用户的操作进行响应。通过绑定事件处理程序,可以捕获和处理用户的点击、滚动、拖放等操作。
  9. 异步编程:JavaScript支持异步编程,可以通过回调函数、Promise对象或async/await关键字来处理异步任务,如网络请求、定时器等。
  10. DOM操作:JavaScript可以使用DOM来访问和修改网页的元素、属性和样式。可以动态地创建、删除和修改HTML元素,也可以响应用户的操作来改变页面内容。
  11. AJAX:JavaScript可以使用AJAX(Asynchronous JavaScript and XML)来进行异步通信,从服务器获取数据并在网页上实时更新。
  12. 模块化:JavaScript中的模块化指的是将代码分割成功能独立的模块,并使用导入和导出语法进行模块之间的交互。

这些是JavaScript的基本概念和特性,它们使得JavaScript成为一种灵活且功能强大的编程语言,特别适用于网页开发。

十、热门文章

【温故而知新】JavaScript数字精度丢失问题
【温故而知新】JavaScript的继承方式有那些
【温故而知新】JavaScript中内存泄露有那几种
【温故而知新】JavaScript函数式编程
【温故而知新】JavaScript的防抖与节流
【温故而知新】JavaScript事件循环

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

·零落·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值