代码拉取完成,页面将自动刷新
<!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>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。