hsi*_*uan 6 javascript arrays sorting extjs
我是一个javascript新手,这是来自ExtJS的代码让我感到困惑:
supportsSort = (function() {
var a = [1,2,3,4,5].sort(function(){ return 0; });
return a[0] === 1 && a[1] === 2 && a[2] === 3 && a[3] === 4 && a[4] === 5;
}()),
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么ExtJS想要做这个测试吗?
最好附上一些示例代码.
犹豫是否将其作为答案发布,因为我承认只是进行了有根据的猜测,但根据MDN,浏览器兼容性Array.sort被列为 ECMAScript5 ,所有内容都为“是”(而不是列出实际版本号) - 留下测试对于实际的支持或多或少是多余的。
不过,变量名可能有点错误,因为如果您实际上遵循它的作用,则传递给的函数sort只是返回0; 通常,您可能会返回1or-1根据比较条件来操纵数组的顺序 - 因此,通过这样做,预期的结果是数组的顺序保持不变。
return 语句只是一系列布尔检查,检查数组是否仍然与最初的顺序相同。可以说,这个supportsSort标志是用来检查浏览器/Javascript 的排序函数的实现实际上是否是一个稳定的算法。