2016-10-05 13 views
2

でJavaScriptの配列をソートする私は、このデータを持っているどのように配列に例えば日付

var mydate = [ 
"2016,10,01", 
"2016,09,13", 
"2016,09,05", 
"2016,09,09", 
"2016,10,02"]; 

? 私はこの出力をしたい:Dateコンストラクタと

2016,09,05 
2016,09,09 
2016,09,13 
2016,10,01 
2016,10,02 
+1

あなたがこれを行うことができますいくつかの方法、超基本的な例がありますを使用してする必要がありますそれをintに変換し、汎用int型ソートを使用します。 – DBS

+2

mydate.sort()はできるだけ少ないです – Tester

+0

@DBSまたは何も取り除いて文字列を並べ替えません – mplungjan

答えて

0

あなたは、日付オブジェクトに日付を解析して、ソートdate.getTime()

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a,b){ 
 
    var da = new Date(a).getTime(); 
 
    var db = new Date(b).getTime(); 
 
    
 
    return da < db ? -1 : da > db ? 1 : 0 
 
}); 
 
console.log(mydate)

1

使用Array#sort方法。その場合には、古いブラウザでサポートされていない

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a, b) { 
 
    return new Date(...a.split(',')) - new Date(...b.split(',')); 
 
}); 
 

 
console.log(mydate);

Spread syntaxのようにそれを行います。シンプルな mydate.sort()はそれを行うことができ

var mydate = [ 
 
    "2016,10,01", 
 
    "2016,09,13", 
 
    "2016,09,05", 
 
    "2016,09,09", 
 
    "2016,10,02" 
 
]; 
 

 
mydate.sort(function(a, b) { 
 
    var a1 = a.split(','), 
 
    b1 = b.split(','); 
 
    return new Date(a1[0], a1[1], a1[2]) - new Date(b1[0], b1[1], b1[2]); 
 
}); 
 

 
console.log(mydate);

+0

日付(... a.split( '、')) – sheetal

+0

@sheetal:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator –

+0

@sheetal:どの配列の値を引数として扱うのに役立ちます –

5

。カンマを削除し、ターン:

+0

w0w nice関数私はそれが存在しないことを知らなかった – Beginner

+0

'.sort()'は文字列値に基づいてソートされませんか? – Rajesh

+0

質問に何か他のことがありますか? – Tester

関連する問題