我有一个json数组,我尝试 按日期对它 进行 排序, 然后再附加它。
该数组如下所示:
result = []; result.push( {id: 'ID', result: {url: 'test', date: '15 May 2013, 6:40 pm'}}, {id: 'ID', result: {url: 'test', date: '20 Dec 2012, 8:00 am'}}, {id: 'ID', result: {url: 'test', date: '29 Jun 2012, 5:47 pm'}} );
目前, 我已经设法对 日期 数组 进行了如下 排序 :
var datearray = [ '2011-05-26 12:00:00', '2016-01-26 12:00:00', '2011-01-26 12:00:00', '2012-12-08 07:00:00', '2011-01-26 12:00:00', '1995-01-05 06:00:00' ]; datearray.sort();
这给了我:
1995-01-05 06:00:00 2011-01-26 12:00:00 2011-01-26 12:00:00 2011-05-26 12:00:00 2012-12-08 07:00:00 2016-01-26 12:00:00
但 我不确定如何对 包含多个键 的复杂数组执行相同的操作 。我知道 我应该先将日期格式设置为YYYY-MM-DD, 但之后会有点混乱。
一个良好的开端将是我目前在jsbin上找到的内容:http ://jsbin.com/ipatok/8/edit
function comp(a, b) { return new Date(a.result.date).getTime() - new Date(b.result.date).getTime(); }
your_array.sort(comp);
只是为了扩展@Karthikr的评论。
var result = []; result.push({ id: 'ID', result: { url: 'test', date: '15 May 2013, 6:40 pm' } }, { id: 'ID', result: { url: 'test', date: '20 Dec 2012, 8:00 am' } }, { id: 'ID', result: { url: 'test', date: '29 Jun 2012, 5:47 pm' } }); function comp(a, b) { return new Date(a.result.date).getTime() - new Date(b.result.date).getTime(); } result.sort(comp); $('body').append(JSON.stringify(result)); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>