jsonファイルの日付でのソート
jsonファイルでの書き出した日付でのソートをしたい場合。 sort関数の第二引数のtrue,falseで昇順、降順は変更することができる。
<!doctype html> <html lang=""> <head> <meta charset="utf-8"> <title>The HTML5 Herald</title> <meta name="description" content="The HTML5 Herald"> <meta name="author" content="SitePoint"> <script src="js/jquery.min.js"></script> <script> var data = [ {"id":"news1", "publishDate":"2018/03/14 12:53:00"}, {"id":"news2", "publishDate":"2018/04/14 12:54:00"}, {"id":"news3", "publishDate":"2018/02/14 12:54:00"} ]; $.each(data,function(i,item){ var changedate = data[i].publishDate.replace(/\u002f/g,"").replace(" ","").replace(/:/g,""); data[i].publishDate = changedate; }) var sort_by = function(field, reverse, primer){ reverse = (reverse) ? -1 : 1; return function(a,b){ a = a[field]; b = b[field]; if (typeof(primer) != 'undefined'){ a = primer(a); b = primer(b); } if (a<b) return reverse * -1; if (a>b) return reverse * 1; return 0; } } $(function(){ data.sort(sort_by('publishDate', true, parseInt)); // data.sort(sort_by('id', false, function(a){return a.toUpperCase()})); for (i = 0; i < data.length; i++) { $('#resultdate').append(data[i].publishDate +':'+ data[i].id +'<br />'); } }); </script> </head> <body> <div id="resultdate"></div> <script src="js/scripts.js"></script> </body> </html>
※表示結果
20180414125400:news2
20180314125300:news1
20180214125400:news3