首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >句柄日期排序asc/desc

句柄日期排序asc/desc
EN

Stack Overflow用户
提问于 2017-03-15 22:43:06
回答 1查看 975关注 0票数 1

;)

我有一个这样的对象:

代码语言:javascript
代码运行次数:0
运行
复制
"datex": {
        "2015-11-15": {
            "0": {
                "page": 1
            },
            "1": {
                "page": 10
            }

        },
        "2015-11-19": {
            "0": {
                "page": 2
            },
            "1": {
                "page": 11
            }

        },
        "2015-11-18": {
            "0": {
                "page": 1
            },
            "1": {
                "page": 20
            }   
        }
    }

我使用Handlebars进行排序:

代码语言:javascript
代码运行次数:0
运行
复制
   ////// RIORDINA PER DATA
Handlebars.registerHelper('eachSorted', function(context, options) {
    var ret = "";
    Object.keys(context).sort().forEach(function(key) {
        ret = ret + options.fn({key: key, value: context[key]})
    })
    return ret
})

Handlebar返回正确的排序值:

代码语言:javascript
代码运行次数:0
运行
复制
    2015-11-15
    2015-11-18
    2015-11-19

但我需要从大日期到低日期进行反转:

代码语言:javascript
代码运行次数:0
运行
复制
    2015-11-19
    2015-11-18
    2015-11-15

感谢您的帮助;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 09:23:38

registerHelper中,您可以为排序提供一个比较函数,用于比较两个日期:

代码语言:javascript
代码运行次数:0
运行
复制
var fnCompare = function(a,b) {
  // Turn your strings into dates, and then subtract them
  // to get a value that is either negative, positive, or zero.
  return new Date(b) - new Date(a);
};
Object.keys(context).sort(fnCompare).forEach(function(key) {
  ret = ret + options.fn({key: key, value: context[key]})
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42812964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档