1 Star 0 Fork 0

prcool/前端开发学习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
sort总结.html 2.04 KB
一键复制 编辑 原始数据 按行查看 历史
prcool 提交于 4年前 . 前端开发学习
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>sort 总结</title>
</head>
<body>
</body>
<script>
// 传两个形参当返回值为正数时,交换传入两形参在数组中位置
// sort()如果不带参数,是将按字母顺序对数组中的元素进行排序,也就是是按照字符编码的顺序进行排序。
// 对字符串的排序
var arr1 = ['adfa', 'dad', 'cad', 'bfdf'];
arr1.sort(); //['a', 'b', 'c', 'd']
// 对数字的排序
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort(); //[1, 10 ,100, 25, 40, 5]
/* 由于排序是按ASCII的顺序来排序的,所以这里对数字排序后得不到想要的结果
从左到右依次比较ASCII码值,所以结果是[1, 10 ,100, 25, 40, 5]
同样的,字符串的比较也是按这个原则,如:
*/
console.log("a"<"b");//true
console.log("abc"<"aad");//false,
/* 当数字是按字母顺序排列时"40"将排在"5"前面。使用数字排序,你必须通过一个
函数作为参数来调用。函数指定数字是按照升序还是降序排列。需要传入参数.
排序函数规则:
传两个形参
当返回值为正数时,交换传入两形参在数组中位置
*/
arr2.sort(function(a,b){return a-b})
//可以使用箭头函数简写为
arr2.sort((a,b)=>a-b)
//如果是倒序
arr2.sort((a,b)=>b-a)
console.log(arr1,arr2)
// 如果是对象
var arr3 = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
//按年龄从小到大排序
arr3.sort((a,b)=>{
return a.age-b.age;
// return b.age-a.age; //按年龄从大到小排序
})
// arr3.forEach(item=>console.log(item))
arr3.forEach(item=>document.write(JSON.stringify(item)))
//{"name":"zopp","age":0}{"name":"yjj","age":8}{"name":"gpp","age":18}
arr3.sort((a,b)=>{
// return a.age-b.age;
// return b.age-a.age;
return (a.name===b.name)? 0 : (a.name>b.name)?1:-1;
})
</script>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/prcool/front-end-development-learning.git
git@gitee.com:prcool/front-end-development-learning.git
prcool
front-end-development-learning
前端开发学习
master

搜索帮助