我在Javascript中收到了日期字符串作为JSON对象的键。我想用Date对象替换键。所以我这样做了。(postdata是JSON对象的名称)
for (var key in postdata){
var temp = postdata[key];
postdata[parseDate(key)] = temp;
delete postdata[key];
}
这是parseDate函数..
function parseDate(input) {
var parts = input.split('-');
return new Date(parts[0], parts[1]-1, parts[2]);
}
但是当我稍后检索到密钥并尝试对密钥进行排序时,它无效。
var date_sort_asc = function (date1, date2) {
if (date1 > date2) return 1
if (date1 < date2) return -1
return 0
};
for (var key in postdata){
graph_label.push(key)
}
graph_label.sort(date_sort_asc)
我在日期列表上尝试了这个并且它工作得很好。但是当从JSON检索为关键时它不起作用?
答案 0 :(得分:1)
在JavaScript的对象键中总是转换为字符串,因此将Date存储为对象的键是不好的做法。我认为创建对象数组会更好。
答案 1 :(得分:0)
您可以使用字符串作为属性名称。
如果您尝试使用Date
对象,系统会自动调用.toString()
,为您提供"Tue Apr 01 2014 07:27:26 GMT+0100 (BST)"
等属性名称。