相关原因
let arr = [1, 2, 3];
arr.sort((a, b) => {
console.log(a, b);
})
// 会发现其进行打印的为2 1;3 2
当我们开始学习的过程中,了解到其应该打印的为1 2; 2 3。但是事实并非如此。同时了解在相关的array.sort(sortfunction)的方法的返回值时,如果返回值大于0,则会进行相关位置的交换;当返回值为小于等于0时则不进行相关位置的交换。通过相关的代码实践,发现事实却是相反的,除了等于0还是不会交换外。
相关示例
let arr = [1, 5, 4, 2];
arr.sort((a, b) => {
return 1;
})
console.log(arr); // [1, 5, 4, 2]
此时位置完全没有发生改变。由此可见,当返回值为大于等于0时会保持原位置不变。
注:以上相关的实践和当初所学到的相关内容不符,不太清楚为什么,可能是我在某些地方实践错误,或者其他的什么原因,欢迎进行相关的内容指正。
JavaScript数组sort方法行为理解
本文探讨了JavaScript中数组的sort方法在进行排序时的实际行为,指出其与预期不同的地方。作者通过示例代码展示了当sort函数返回值大于0时,元素位置并未交换的情况,这与通常的理解相悖。博客内容引导读者重新审视sort方法的工作原理,以避免在实际开发中出现误解。
1万+

被折叠的 条评论
为什么被折叠?



