jon*_*jon 4 javascript arrays sorting function
我无法理解为什么以下函数以数字方式对字符串进行排序(在代码的第三部分中).
var myArray = [10, 44, 32, 100, 0, 44, 3, 4];
console.log(myArray.toString()); // 10, 44, 32, 100, 0, 44, 3, 4 --> unsorted
myArray.sort();
console.log(myArray.toString()); // 0,10,100,3,32,4,44,44 --> sorted like strings
// this is what confuses me:
myArray.sort(function (a, b) {
return a - b;
});
console.log(myArray.toString()); // 0,3,4,10,32,44,44,100 --> sorted numerically
Run Code Online (Sandbox Code Playgroud)
特别是:
如何a和b获取填充?
为什么减去a - b按数字顺序对数字进行排序?
如果函数一次仅检查2个数字,那么所有数字如何被分类到正确的顺序?(即a和b)
.sort 采用可选参数,该参数应该是一个函数.
.sort然后重复调用该函数,从数组中传递一对值(a和b参数).然后该函数返回一个值,其解释如下:
a < ba > ba == b使用此功能,.sort使用浏览器编程使用的任何排序算法计算项目的顺序.
在没有排序功能的情况下,.sort将项目排序为字符串 - 这只是设计的任意点.理想情况下,你应该传递一个函数,每当你想使用.sort的东西,因为这里是函数强制值作为数字进行比较的情况.
| 归档时间: |
|
| 查看次数: |
2498 次 |
| 最近记录: |