2017-07-12 10 views
-1

私は次のコードを持っている:あなたが見ることができるようにJavascriptのソートオブジェクト配列

private restorePurchases(): Promise<any[]> { 
    return new Promise<any[]>((resolve) => { 
     let data: any[] = 
     [ 
      { 
      productId: 'com.thewhozoo.prod.message.30days', 
      date: 1499869861370 
      }, 
      { 
      productId: 'com.thewhozoo.prod.message.3days', 
      date: 1498869861369 
      }, 
      { 
      productId: 'com.thewhozoo.prod.message.10days', 
      date: 1499869851369 
      }, 
      { 
      productId: 'com.thewhozoo.prod.message.3days', 
      date: 1499869861369 
      } 
     ]; 

     resolve(data); 
    }); 
    } 

を、それが配列を返します。私はdate(昇順)で配列をソートしたいと思います。

this.restorePurchases().then((purchases: any[]) => { 
    purchases.sort(by date); 
}); 

アドバイスはありません。

+1

[JavaScriptオブジェクトの配列をソート]の可能な重複(https://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects ) – Durga

+0

何らかの理由でTypeScriptがそれを防止しない限り、新しい約束を構築してから 'resolve'コールバックを呼び出すのではなく、' return Promise.resolve(...) 'を使うべきです。 – Alnitak

答えて

1

Array.prototype.sort documentationを参照してください。

this.restorePurchases().then((purchases: any[]) => { 
    purchases.sort((a, b) => a.date - b.date); 
}); 

const data = [ 
 
    { 
 
    productId: 'com.thewhozoo.prod.message.30days', 
 
    date: 1499869861370 
 
    }, 
 
    { 
 
    productId: 'com.thewhozoo.prod.message.3days', 
 
    date: 1498869861369 
 
    }, 
 
    { 
 
    productId: 'com.thewhozoo.prod.message.10days', 
 
    date: 1499869851369 
 
    }, 
 
    { 
 
    productId: 'com.thewhozoo.prod.message.3days', 
 
    date: 1499869861369 
 
    } 
 
]; 
 

 
console.log(data.sort((a, b) => a.date - b.date));

+0

ありがとうございました。私はこれを9分で正解とマークして、私に許してくれます。 – Richard