假设我有一些对象的数组:
var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}];
Run Code Online (Sandbox Code Playgroud)
如何从最接近当前日期和时间的日期开始按日期元素对此数组进行排序?请记住,数组可能有很多对象,但为了简单起见,我使用了2.
我会使用sort函数和自定义比较器吗?
UPDATE
在我的具体情况下,我希望日期安排从最新到最旧.结果我不得不颠倒简单函数的逻辑:
array.sort(function(a, b) {
a = new Date(a.dateModified);
b = new Date(b.dateModified);
return a>b ? -1 : a<b ? 1 : 0;
});
Run Code Online (Sandbox Code Playgroud)
这会对最近的日期进行排序.
我有一个JavaScript对象数组.我的数组定义如下:
var myObjects = [
{ id: '1', username: 'bill.jones', active: true, createdon: '03/29/2014' },
{ id: '2', username: 'woohoo', active: true, createdon: '03/28/2014' },
{ id: '3', username: 'someuser', active: true, createdon: '03/30/2014' }
];
Run Code Online (Sandbox Code Playgroud)
该数组实际上是动态填充的.不过,我需要按创建的值按升序对结果进行排序.为此,我正在尝试使用lodash.createdon值表示日期.目前,我正在尝试以下方法:
// ORDER BY createdOn
myObjects.sort(function (a, b) {
var date1 = new Date(a['createdon']);
var date2 = new Date(b['createdon']);
return date1 < date2;
});
_.forEach(myObjects, function(result) {
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,在运行此函数后,myObjects仍未排序.我究竟做错了什么?
谢谢!
我搜索过这个问题,似乎没有现成的答案.考虑以下:
[
{ 'August 17th 2016': [75] }, // 75 is the length of the array which contains up to 75 objects ...
{ 'August 1st 2016': [5] },
{ 'August 28th 2016': [5] },
...
]
Run Code Online (Sandbox Code Playgroud)
按日期排序此数组中对象的最佳方法是什么,并保持其键的"英语"表示?
注意:该键用作图表标签.
我看到的每个地方都array.sort被使用,但那是对象的关键所在created_at.
结果应该是:
[
{ 'August 1st 2016': [5] },
{ 'August 17th 2016': [75] }
{ 'August 28th 2016': [5] },
...
]
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么办,所以我没有什么可展示的.