2016-09-16 13 views
0

ある日付別のオブジェクトの配列は、だから、この配列が故障していることを確認するには、clearだそのdate: arrayソート日付がキー

enter image description here

オブジェクトの配列を、以下の画像を検討します日付の値を持つ日付キーがあるオブジェクトの配列をソートする例がたくさんあります。しかし、オブジェクトのキーが日付であるオブジェクトの配列をソートすることはできません。

アイデア?

このanswerは、オブジェクトのキーがわかるように、私の見つけることができる最も近い答えですが、再び私の日付です。

+0

あなたは、あなたの質問に配列を投稿することができますか? –

答えて

0

は考えてみましょう:

data = [ 
 
    {[new Date(2014, 1, 2)]: 1}, 
 
    {[new Date(2013, 2, 3)]: 1}, 
 
    {[new Date(2016, 3, 4)]: 1}, 
 
    {[new Date(2014, 4, 5)]: 1}, 
 
    {[new Date(2015, 1, 6)]: 1}, 
 
    {[new Date(2016, 2, 2)]: 1}, 
 
    {[new Date(2014, 3, 3)]: 1}, 
 
    {[new Date(2015, 4, 4)]: 1}, 
 
    {[new Date(2013, 5, 5)]: 1} 
 
]; 
 

 
result = data 
 
    .map(obj => [Date.parse(Object.keys(obj)[0]), obj]) 
 
    .sort((x, y) => x[0] - y[0]) 
 
    .map(x => x[1]); 
 

 

 
console.log(result);

これはSchwartzian transformオーデル "飾る・ソートundecorate" と呼ばれる技術を使用しています。

0

georgのやり方に代わるものです。

data = [ 
 
    {[new Date(2014, 1, 2)]: 1}, 
 
    {[new Date(2013, 2, 3)]: 1}, 
 
    {[new Date(2016, 3, 4)]: 1}, 
 
    {[new Date(2014, 4, 5)]: 1}, 
 
    {[new Date(2015, 1, 6)]: 1}, 
 
    {[new Date(2016, 2, 2)]: 1}, 
 
    {[new Date(2014, 3, 3)]: 1}, 
 
    {[new Date(2015, 4, 4)]: 1}, 
 
    {[new Date(2013, 5, 5)]: 1} 
 
]; 
 

 
data.sort((a, b) => 
 
      Date.parse(Object.keys(a)[0]) - 
 
      Date.parse(Object.keys(b)[0])) 
 

 
console.log(data)