假设存在数组
let arr = [10,12,3,2,5,1,9,7,8,8,9,4];
尝试一下
arr.sort((a,b)=> a> b);
//结果:[1、4、3、2、5、7、8、9、9、10、12]
但是,使用此
arr.sort((a,b)=> a-b);
//结果:[1、2、3、4、5、7、8、9、9、10、12]
let arr = [10, 12, 3, 2, 5, 1, 9, 7, 8, 9, 4];
console.log(arr.sort((a, b) => a > b));
let arr1 = [10, 12, 3, 2, 5, 1, 9, 7, 8, 9, 4];
console.log(arr1.sort((a, b) => a - b));
答案 0 :(得分:2)
这是一本很好的读物,用于了解Array.sort()
的工作原理
引用与您的问题有关的内容:
如果compareFunction(a,b) 小于0,请将a排序为小于b的索引,即a在前。
如果compareFunction(a,b)返回0,则使a和b保持不变 彼此尊重,但针对所有不同 元素。
注意:ECMAscript标准不能保证这一点 行为,因此并非所有浏览器(例如Mozilla版本约会 至少要追溯到2003年)。
如果compareFunction(a,b)是 大于0,则将b排序为小于a的索引,即b位于第一位。
这:
String.Type
返回arr.sort((a, b) => a > b);
或true
,其值为1或0,从不为-1
因此,使用此“不完整”功能,结果取决于执行代码的引擎所使用的排序算法