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 运用在延迟一段时间,再进行某项操 ...
随机推荐
- iOS tableview性能优化及分析
1.最常用的就是cell的重用, 注册重用标识符 每次滑动cell时需要先去缓存池中寻找可循环利用的cell,如果没有则再重新创建cell 2.减少cell中控件的数量 view对象尽量缩减控件的数量 ...
- 二叉搜索树 思想 JAVA实现
二叉搜索树:一棵二叉搜索树是以一棵二叉树来组织的,这样一棵树可以使用链表的数据结构来表示(也可以采用数组来实现).除了key和可能带有的其他数据外,每个节点还包含Left,Right,Parent,它 ...
- stl容器学习——queue,stack,list与string
目录 头文件 string 目录部分 1.string的定义及初始化 ① 用一个字符串给另一个字符串赋值 ②用字符串常量对字符串进行赋值 ③ 用n个相同的字符对字符串赋值 2.string的运算符及比 ...
- 为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比
原文:https://www.sojson.com/blog/48.html 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: ...
- Python用于http/https接口自动化
本接口自动化框架主要用到的类: 1. unittest:组织测试用例 2. requests:http/https请求 3. HTMLTestRunner:生成测试报告 4. Dingtalkchat ...
- pycharm入门的简易使用教程
1.安装python3.5包: 本人安装到C盘,如下所示: Ps:安装时候,路径一定要添加到环境变量中,安装完,需要更新环境变量,所以要重启电脑 2.安装pycharm 下载相应的安装包,步骤不重复了 ...
- 整理的最全 python常见面试题
整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...
- thinkPhP + Apache + PHPstorm整合框架
最近在学习使用 ThinkPhP,网上很多都是用一些整合好的服务框架,为了学习,在这里我简单的对Apache.PHP做一个原生的整合,希望对你有帮助. 步骤: ①下载 thinkPHP.PHP.Apa ...
- git设置core.autocrlf
背景: 使用虚拟机共享windows文件夹,文件夹中用git clone 一个仓库.在linux下编辑文件,用git status发现几乎所有的文件都为修改状态. 原因: windows下和lin ...
- 关于DES加密强制更新版(4.22)
数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的.通常,自动取款 ...