【发布时间】:2016-03-08 02:40:43
【问题描述】:
如何按工作日对工作日的Javascript对象进行排序,即这里是对象的JSON格式:
{"Friday":["5:00pm to 12:00am"] ,"Wednesday":["5:00pm to 11:00pm"],"Sunday":["11:00am to 11:00pm"], "Thursday":["5:00pm to 11:00pm"],"Saturday":["11:00am to 12:00am"]}
其中关键是一天,即“星期三”。我想根据工作日的顺序进行排序,即周日、周一、周二等
预期输出是:
{ "Wednesday":["5:00pm to 11:00pm"], "Thursday":["5:00pm to 11:00pm"], "Friday":["5:00pm to 12:00am"], "Saturday":["11:00am to 12:00am"], "Sunday":["11:00am to 11:00pm"]}
这就是我正在尝试的。
var keys = {};
Object.keys(scope.daySpecificHours)
.map(function (k) { return [k, scope.daySpecificHours[k]]; })
.sort(function (a, b) {
if (a[0] < b[0]) return -1;
if (a[0] > b[0]) return 1;
return 0;
})
.forEach(function (d) {
scope.daySpecificHours[d[0]] = d;
});
谢谢。
【问题讨论】:
-
您能否发布您的代码以向我们展示您已经尝试过的内容,并解释它有什么问题?
-
我在控制台上试过,但无法完成。
-
只是为了为您指明正确的方向。 Moment.JS 让您提供一个像这样的对象并获得生成的日期编号
moment("Friday", "e").weekday()。将它与 lodash 的sortBy之类的东西结合起来可以很容易地工作。只是一个建议。 -
它是一个对象,不能按属性名排序,规范中不保证顺序:stackoverflow.com/questions/5525795/…
-
这不是重复的!如果我们通过将工作日视为文本来对它们进行排序,那么排序顺序将是错误的。 stackoverflow.com/questions/1069666/… 不回答这个问题。
标签: javascript angularjs sorting object