javascript - 不一致的 Javascript 排序

标签 javascript json sorting

我被这个搞糊涂了。我在 Js 中做了很多排序,但出于某种原因,我的行为很奇怪。

x = [{ts: "2013-09-24 14:44:22"}, {ts: "2013-09-24 14:08:26"}, {ts: "2013-09-24 17:37:42"}].sort(function(a,b) {return a.ts < b.ts;});
console.log(x); // this is sorted

但是,当我使用更长的数组时,排序不起作用。只看第二类的前三个对象:

http://jsfiddle.net/HWx7p/

有什么想法吗?

最佳答案

您的比较器需要返回一个数字,而不是 bool 值。

如果小于则为负数,如果等于0,如果大于则为正数。

.sort(function(a,b) {
    if(a.ts == b.ts) return 0;
    return a.ts < b.ts ? -1 : 1;
});

http://jsfiddle.net/HWx7p/8/

关于javascript - 不一致的 Javascript 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006983/

相关文章:

json - 是否有用于在 keycloak 上更改用户密码的 API 调用?

php - HTML 页面中的 JSON 数据在表中

javascript - 样式化的媒体接收器源 (Chromecast)

javascript - 使用appendChild将元素添加到DOM,然后引用创建它们的类

javascript - 地铁 bundler : Cannot read properties of undefined (reading 'transformFile' )

java - 如何遍历 JSONObject?

javascript - 如果我用 jquery 得到 "top",这是什么意思?

python - Pandas 分组排序

javascript - 如何根据另一个数组的顺序对一个对象数组进行排序?

SQL:基于两列交错值的 ORDER BY