javascript - 为什么数组在javascript中不按递增日期或递减日期排序?

标签 javascript jquery arrays

我正在尝试对我的对象数组进行排序。对象具有日期属性。我需要按升序或降序日期对我的数组进行排序。我尝试这样

https://jsfiddle.net/rxaLutgn/1/

function sort_by(field, reverse, primer) {

            var key = primer ?
                function (x) {
                    return primer(x[field])
                } :
                function (x) {
                    return x[field]
                };

            reverse = !reverse ? 1 : -1;

            return function (a, b) {
                return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
            }
        }

它没有按升序或降序对数组进行排序。

最佳答案

你的函数相当困惑,尝试一下

function sort_by(field, reverse, primer) {

            var key = primer ?
                function (x) {
                    return primer(x[field])
                } :
                function (x) {
                    return x[field]
                };

            reverse = !reverse ? 1 : -1;

            return function (a, b) {
                a = new Date(key(a)), b = new Date(key(b));
                return reverse * (a-b);
            }
        }

您需要将日期字符串转换为日期才能排序,并且还需要更改返回代码。

工作中fiddle

关于javascript - 为什么数组在javascript中不按递增日期或递减日期排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33695764/

相关文章:

javascript - 使用 Javascript 的单数 VS 复数?

jquery - 如何在两行和 4 tds 的表中动态出现一个 Div 的相同位置?

javascript - 使用 Array.prototype.map(callback, index) 在模板文字中索引 [data-attribute]?

JavaScript,如何在下一行继续表达

javascript - MongoDB:如何在脚本中获取两个集合的最后一个值?

javascript - 如何在新标签页中打开链接?使用 JavaScript 或 jQuery。没有阻止弹出窗口的浏览器警报

jquery - 获取页面上未选中单选按钮的问题列表 JQuery

java - 计算文件中与 String [ ] 中的单词匹配的单词数

arrays - Julia 中数组数组的逐元素操作

javascript - jQuery Mobile 选择单选按钮不起作用