一、数组排序
数组: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()方法:
- 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
- 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的详细概念:
- 语法:JavaScript使用类似于Java和C的语法,包含变量、运算符、表达式、语句等,具有面向对象的特性。
- 数据类型:JavaScript有许多内置的数据类型,包括数字、字符串、布尔值、数组、对象等。它还支持动态类型,即变量可以在运行时自动改变类型。
- 变量:在JavaScript中,可以使用var、let或const关键字声明变量。var关键字在整个函数作用域内都可见,而let和const关键字只在其被声明的块级作用域内可见。
- 运算符:JavaScript支持常见的运算符,如算术运算符、比较运算符、逻辑运算符等。
- 控制流程:JavaScript提供了if语句、for循环、while循环等控制流程结构,用于控制程序的执行路径。
- 函数:JavaScript中的函数是一段可重复使用的代码块,可以接受参数并返回值。函数可以作为变量、参数传递给其他函数,也可以匿名定义。
- 对象:JavaScript是一种面向对象的语言,对象是其核心概念之一。对象是一种包含属性和方法的数据结构。
- 事件处理:JavaScript可以通过DOM(文档对象模型)来操作网页上的元素,并对用户的操作进行响应。通过绑定事件处理程序,可以捕获和处理用户的点击、滚动、拖放等操作。
- 异步编程:JavaScript支持异步编程,可以通过回调函数、Promise对象或async/await关键字来处理异步任务,如网络请求、定时器等。
- DOM操作:JavaScript可以使用DOM来访问和修改网页的元素、属性和样式。可以动态地创建、删除和修改HTML元素,也可以响应用户的操作来改变页面内容。
- AJAX:JavaScript可以使用AJAX(Asynchronous JavaScript and XML)来进行异步通信,从服务器获取数据并在网页上实时更新。
- 模块化:JavaScript中的模块化指的是将代码分割成功能独立的模块,并使用导入和导出语法进行模块之间的交互。
这些是JavaScript的基本概念和特性,它们使得JavaScript成为一种灵活且功能强大的编程语言,特别适用于网页开发。
十、热门文章
【温故而知新】JavaScript数字精度丢失问题
【温故而知新】JavaScript的继承方式有那些
【温故而知新】JavaScript中内存泄露有那几种
【温故而知新】JavaScript函数式编程
【温故而知新】JavaScript的防抖与节流
【温故而知新】JavaScript事件循环