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

2023-12-12

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

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);
            }
        }

您需要将日期字符串转换为日期进行排序,还需要更改返回代码。

Working fiddle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么数组在javascript中不按递增日期或递减日期排序? 的相关文章

随机推荐