use*_*342 4 javascript arrays sorting list
如果我做:
var my_list = ["g", "be", "d", "f", "hu", "i", "jc", "lu", "ma", "mi", "w"];
var sorted_list = my_list.sort(function(a,b) {
return a > b;
});
console.log(sorted_list);
Run Code Online (Sandbox Code Playgroud)
我明白了:
["i", "g", "d", "f", "be", "hu", "jc", "lu", "ma", "mi", "w"]
Run Code Online (Sandbox Code Playgroud)
(如果我尝试再试一次,我会得到一个不同的未分类结果).
但是当我这样做时:
var my_list = ["g", "be", "d", "f", "hu", "i", "jc", "lu", "ma", "mi", "w"];
var sorted_list = my_list.sort();
console.log(sorted_list);
Run Code Online (Sandbox Code Playgroud)
我得到了正确的排序结果:
["be", "d", "f", "g", "hu", "i", "jc", "lu", "ma", "mi", "w"]
Run Code Online (Sandbox Code Playgroud)
我提供排序的功能有什么问题?
我不能在没有函数的情况下使用sort,因为在我的实际代码中,我正在尝试对对象进行排序.如果这不起作用,还有另一种方法可以按某个属性对对象进行排序吗?
比较函数应返回值-1,0或1,具体取决于操作数的比较方式.
如果仅执行相等性检查(产生0或1),则排序结果将是未定义的,因为内部排序算法本身就不稳定.
这将是标准排序的等价物:
if (a == b) {
return 0;
} else if (a < b) {
return -1;
} else { // a > b
return 1;
}
Run Code Online (Sandbox Code Playgroud)
上述内容并不是非常有用,但仅用于说明应该存在哪些比较元素.
归档时间: |
|
查看次数: |
69 次 |
最近记录: |