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 运用在延迟一段时间,再进行某项操 ...
随机推荐
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于 short s1 = 1; s1 = s1 + 1;由于 s1+1运算时会自动提升表达式的类型,所以结果是 int型,再赋值给 short 类型 s1时, 编译器将报告需要强制转换类型的错误.对 ...
- maven中archetype(原型)的使用
原文链接:https://www.cnblogs.com/snowstar123/p/3449349.html 最近项目组做好一套框架,为了推广需要创建一些空白项目给项目组使用,因为所有的空白项目里面 ...
- mysql数据库表的基本操作sql语句总结
1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** We ...
- P2300 合并神犇
题目链接 题意分析 首先这道题不可以使用简单的贪心来做 根据\(DP\) 我们令\(dp[i]\)表示当前到了\(i\)一共做了\(dp[i]\)次合并 \(pre[i]\)表示当前合并到了\(i\) ...
- 循环神经网络中BFTT的公式推导
一.变量定义 此文是我学习BFTT算法的笔记,参考了雷明<机器学习与应用>中的BFTT算法推导,将该本书若干个推导串联起来,下列所有公式都是结合书和资料,手动在PPT上码的,很费时间,但是 ...
- Git远程库
要关联一个远程主机,使用命令 git remote add origin <url> : 删除远程主机,使用命令 git remote rm origin ; git push 的一般形式 ...
- ORACLE的WITH语句的一个疑惑
使用WITH语句,更新表数据,不行: WITH VN AS ( SELECT T.ID, T.NODE_ID, N.NODE_TYPE, N.NODE_NAME, T.NODE_LEVEL, T.RN ...
- 洛谷 P3227 [HNOI2013]切糕(最小割)
题解 Dinic求最小割 题目其实就是求最小的代价使得每个纵轴被分成两部分 最小割!!! 我们把每个点抽象成一条边,一个纵轴就是一条\(S-T\)的路径 但是题目要求\(|f(x,y)-f(x',y' ...
- 关于dedecms数据量大以后生成目录缓慢的问题解决
四月份的时候博客被封.我不知情.因为一直很忙,没有来得及看.前两天来看以后,发现居然被封,吓傻了我. 赶紧找原因,原来是转载了某个人的博文,被他举报了,然后就被封了. 觉得很伤心,毕竟这个博客陪伴了我 ...
- BellmanFord贝尔曼-福特算法
import java.util.ArrayList; import java.util.Scanner; /** * 贝尔曼-福特算法 * * Bellman - ford算法是求含负权图的单源最短 ...