我正在尝试理解获取数字数组并对其进行排序的 JS 代码片段:
var msg = document.getElementById("message");
var v = [30,2,1,9,15];
msg.innerHTML += "<p><strong>Original order:</strong> [" + v + "]<p>";
v.sort(sortLowToHigh);
msg.innerHTML += "<p><strong>After sorting:</strong> [" + v + "]<p>";
function sortLowToHigh(a, b) {
return a - b;
}
输出:
Original order: [30,2,1,9,15]
After sorting: [1,2,9,15,30]
我意识到 sort()
函数在单独使用时会将数组元素转换为字符串,而排序的结果是不理想的。
但我不知道 sortLowToHigh
如何以及基于什么过程训练 sort
方法按升序对数值进行排序。
最佳答案
sort
接受比较函数。该函数需要做的就是比较两个值,如果 a 小于 b 则返回小于 0 的值,如果 a 大于 b 则返回大于 0 的值,如果它们相等则返回 0。使用该比较,排序函数处理实际排序。
对于数字,这个比较函数很简单。你只要返回a - b
, 你得到了 <0
的返回值, 0
或 >0
.
关于javascript - 在 JavaScript 中对数值数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27333920/