JS里的居民们6-数组排序
编码
var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140];
将上面数组分别按从大到小以及从小到大进行排序后在console中输出
var arr = ['apple', 'dog', 'cat', 'car', 'zoo', 'orange', 'airplane'];
将上面数组分别按字母顺序a-z及z-a进行排序,在console中输出
var arr = [[10, 14], [16, 60], [7, 44], [26, 35], [22, 63]];
将上面的二维数组,按照每个元素中第二个数从大到小的顺序进行排序输出,输出结果应该为:
[[22, 63], [16, 60], [7, 44], [26, 35], [10, 14]]
var arr = [
{
id: 1,
name: 'candy',
value: 40
}, {
id: 2,
name: 'Simon',
value: 50
}, {
id: 3,
name: 'Tony',
value: 45
}, {
id: 4,
name: 'Annie',
value: 60
}
];
将上面数组分别按元素对象的value值从小到大进行排序后输出
<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title>JS里的居民们8-排序</title>
</head> <body>
<script>
function compareNumbers(a, b) {
return a - b;
}
var arr1 = [43, 54, 4, -4, 84, 100, 58, 27, 140];
//将上面数组分别按从大到小以及从小到大进行排序后在console中输出
console.log("arr1从小到大排序:" + arr1.sort((a, b) => a - b));
console.log("arr1从小到大排序:" + arr1.sort(function (a, b) {
return a - b;
}))
console.log("arr1从大到小排序:" + arr1.sort((a, b) => a - b).reverse());
console.log("arr1从大到小排序:" + arr1.sort((a, b) => b - a)); var arr2 = ['apple', 'dog', 'cat', 'car', 'Zoo', 'orange', 'airplane'];
//将上面数组分别按字母顺序a-z及z-a进行排序,在console中输出
console.log("arr2从a-z排序:" + arr2.sort()); //与字符串相加,成为字符串打印出来
console.log("arr2从z-a排序:"); //大小写有差别!!注意
console.log(arr2.sort().reverse()); //仍为数组对象打印出来
var arr3 = [
[10, 14],
[16, 60],
[7, 44],
[26, 35],
[22, 63]
];
//将上面的二维数组,按照每个元素中第二个数从大到小的顺序进行排序输出,输出结果应该为:
console.log("arr3按第二个数从大到小排序:");
console.log(arr3.sort((a, b) => b[1] - a[1]));
console.log("arr3按第一个数从大到小排序:");
console.log(arr3.sort((a, b) => b[0] - a[0]));
//[[22, 63], [16, 60], [7, 44], [26, 35], [10, 14]] var arr4 = [{
id: 1,
name: 'candy',
value: 40
}, {
id: 2,
name: 'Simon',
value: 50
}, {
id: 3,
name: 'Tony',
value: 45
}, {
id: 4,
name: 'Annie',
value: 60
}];
//将上面数组分别按元素对象的value值从小到大进行排序后输出
arr4.sort(function (a, b) {
var valueA = a.value;
var valueB = b.value;
if (valueA < valueB) {
return -1;
}
if (valueA > valueB) {
return 1;
}
return 0;
})
console.log("按元素对象的value值从小到大进行排序:")
console.log(arr4); arr4.sort(function (a, b) {
var valueA = a.value;
var valueB = b.value;
if (valueA < valueB) {
return 1;
}
if (valueA > valueB) {
return -1;
}
return 0;
})
console.log("按元素对象的value值从大到小进行排序:")
console.log(arr4); arr4.sort(function (a, b) {
var nameA = a.name.toUpperCase(); //忽略大小写进行排序,按字母来
var nameB = b.name.toUpperCase();
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
return 0;
})
console.log("按元素对象的name值从a-z进行排序:")
console.log(arr4);
</script>
</body> </html>
JS里的居民们6-数组排序的更多相关文章
- JS里的居民们7-对象和数组转换
编码 学习通用的数据用不同的数据结构进行存储,以及相互的转换 对象转为数组: var scoreObject = { "Tony": { "Math": 95, ...
- JS里的居民们5-数组(栈)
编码1(栈顶在最右) 练习如何使用数组来实现栈,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关进栈.退栈.获取栈 ...
- JS里的居民们4-数组((堆)队列
编码1(队头在最右) 练习如何使用数组来实现队列,综合考虑使用数组的 push,pop,shift,unshift操作 基于代码,实现如按钮中描述的功能: 实现如阅读材料中,队列的相关入队.出队.获取 ...
- PHP中的__toString方法(实现JS里的链式操作)
_toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be co ...
- 理解 Node.js 里的 process.nextTick()
有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...
- chart.js 里添加图表的清单:
chart.js 里添加图表的清单: var legend = myDoughnut.generateLegend(); $("#chart_legend").html(legen ...
- js笔记——js里var与变量提升
var是否可以省略 一般情况下,是可以省略var的,但有两点值得注意: 1.var a=1 与 a=1 ,这两条语句一般情况下作用是一样的.但是前者不能用delete删除.不过,绝大多数情况下,这种差 ...
- js里cookie操作
原生js操作cookie 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次 ...
- JS里设定延时:js中SetInterval与setTimeout用法
js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...
随机推荐
- PL/SQL数据开发那点事
PL/SQL开发那点事----->PL/SQL开发过程中异常处理 用户编写的PL/SQL块在执行过程中不可避免地要发生一些错误. 这里涉及的错误并不是由于程序的语法错误引起的,而是因为处理的数据 ...
- 浅谈Android选项卡(二)
前面简单介绍了选项卡,下面以及后面的几篇文章介绍下Android选项卡的几种简单实现方法. http://blog.csdn.net/xia215266092/article/details/9613 ...
- 数组其他部分及java常见排序
数据结构的基本概述: 数据结构是讲什么,其实大概就分为两点: 1.数据与数据之间的逻辑关系:集合.一对一.一对多.多对多 2.数据的存储结构: 一对一的:线性表:顺序表(比如:数组).链表.栈(先进后 ...
- (一)使用appium之前为什么要安装nodejs???
很多人在刚接触appium自动化时,可能会像我一样,按照教程搭建好环境后,却不知道使用appium之前为什么要用到node.js,nodejs到底和appium是什么关系,对nodejs也不是很了解, ...
- Oracle 第三方管理工具整理
Oracle 第三方管理工具整理 1.OB(SI Object Browser) 官方网址: http://www.ctdw.com.cn说明:小软件大功能,个人最爱它的数据库导入.导出功能,一键导入 ...
- C#集合之不变的集合
如果对象可以改变其状态,就很难在多个同时运行的任务中使用.这些集合必须同步.如果对象不能改变器状态,就很容易在多个线程中使用. Microsoft提供了一个新的集合库:Microsoft Immuta ...
- CAS总结
n++的问题不能保证原子操作. 因为被编译后拆分成了3个指令,先获取值,然后加一,然后写回内存.把变量声明为volatile,volatile只能保证内存可见性,但是不能保证原子性,在多线程并发下,无 ...
- UBoot常用命令及内核下载与引导
一.常用命令 1. 获取帮助 ① help 或 ? 2. 环境变量与相关命令 (1)环境变量 ① bootdely ② baudrate ③ netmask ④ ethaddr ⑤ bootfile ...
- C#文件上传编码乱码
又遇到文件编码乱码的事情,这回稍微有些头绪,但是还是花了很多时间去解决. 场景:上传csv文件,导入到数据库.上传文件的编码不定,需要转成unicode存储. 问题点:需要解决判断上传文件的编码. 关 ...
- nginx响应码
ngx.status = ngx.HTTP_CONTINUE (100) (first added in the v0.9.20 release)ngx.status = ngx.HTTP_SWITC ...