关于JS中的sort()数组数字顺序乱序问题以及扩展
原创sort排序问题
首先, 我们定义了number 数组, 里面装了15个数, 但我们接受了 reverse 后再sort 发现的顺序不是我们想象的那样。 从1~15
Tips : sortNumber.sort 之后,它会改变自己。
let sortNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
console.log(sortNumbers.reverse().sort();

虽然表面上看起来秩序很混乱, 事实上,这也是正常的, 先是 ‘1’开头 然后是‘2’开头 。所以 sort当对阵列进行排序时, 默认情况下,这些元素作为字符串相互比较。
但是 如果我们真的想比较数组中的数字怎么办?
这时 需要我们加入sort将您自己的自定义添加到功能中:
let sortNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
console.log(sortNumbers.reverse().sort((a, b) => a - b)); // 倒车档正在下降
在b>a时, 返回负数, 相反,返回正数。 相等时返回0。所以 sort该函数将根据这些返回值对数组进行排序。

当然,我们也可以自定义某个属性的排序。
就是在 sort ()添加自己编写的函数
const friends = [
{name: jason, age: 30},
{name: timmy, age: 20},
{name: robert, age: 10}, // ES2017 允许结尾使用逗号
];
function comparePerson(a, b){
if (a.age < b.age){
return -1;
}
if(a.age > b.age){
return 1;
}
return 0;
}
console.log(friends.sort(comparePerson)); // 注意这个 调用func 是不加 () 的
所以 这种类型非常自由, 你可以写任何你比较的方法。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
上一篇:二叉树遍历,中序遍历(函数调用) 下一篇:死拼36个JS抄写题(转载)版权声明
itfan123




