数组排序sort()小结
2021/7/21 23:12:46
本文主要是介绍数组排序sort()小结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
先看结果
你想对下面两种类型数组排序?那就接着往下看
var list = [1, 3, 9, 5]; var list3 = [ { "name": "Tom0", "age": 10 }, { "name": "Tom1", "age": 18 }, { "name": "Tom2", "age": 16 }, { "name": "Tom3", "age": 15 } ];
简单运用
sort()方法是按升序排列数组项的,是直接在原数组上做修改。
var list = [1, 3, 9, 5]; list.sort(); console.log(list);// [ 1, 3, 5, 9 ]嗯是我想要的,不过!!
原理介绍
它是将数组项转化为字符串进行比较,比较的是ASCII码的大小,"19"中 "1"比"3"小所以排在前面。
var list1 = [1, 3, 19, 5]; list1.sort(); console.log(list1);// [ 1, 19, 3, 5 ]
如何“正确”的比较大小?
sort方法可以接收一个比较函数作为参数,让我们来决定哪个值排在前面。比较函数接收两个参数,如果第一个参数位于第二个参数前面就返回一个负数,如果两个参数相等就返回0,如果第一个参数位于第二个参数后面就返回一个正数。以下是一个简单的比较函数。
function compare(val1, val2) { if (val1 < val2) { return -1; } else if (val1 > val2) { return 1; } else { return 0; } } var list2 = [1, 3, 19, 5]; list2.sort(compare); console.log(list2);//[ 1, 3, 5, 19 ]
此时我们就能点进阶了
var list3 = [ { "name": "Tom0", "age": 10 }, { "name": "Tom1", "age": 18 }, { "name": "Tom2", "age": 16 }, { "name": "Tom3", "age": 15 } ]; function compareFun(key) { return function (obj1, obj2) { return obj1[key] - obj2[key]; } } list3.sort(compareFun("age")) /* *[ * { name: 'Tom0', age: 10 }, * { name: 'Tom3', age: 15 }, * { name: 'Tom2', age: 16 }, * { name: 'Tom1', age: 18 } *] */
总结
这几天看js时遇到了这方法的介绍感觉不错,特地写下记录怕以后忘掉,参考资料菜鸟教程,廖雪峰的官方网站
这篇关于数组排序sort()小结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现