2017-10-14 15 views
0

昇順でその価格のエントリに基づいて、任意の配列やクラスの4つの項目最初に取得する方法:は、私は次のように与えられたクラスのオブジェクトを持って

活字体で
Products: Product[] = [ 
    { id: 1, name: 'Milk', price: '1' }, 
    { id: 2, name: 'Flour', price: '20' }, 
    { id: 3, name: 'Jeans', price: '29' }, 
    { id: 4, name: 'T-Shirts', price: '14.59' }, 
    { id: 5, name: 'Purse', price: '199.99' }, 
    { id: 6, name: 'Jacket', price: '200' }, 
    { id: 7, name: 'Football', price: '50' }, 
    { id: 8, name: 'Pens', price: '5' }, 
    { id: 9, name: 'Tooth Brush', price: '4' }, 
    { id: 10, name: 'lipistic', price: '9.89' } 
]; 

私はそれから項目の与えられた数を取得したいです最低価格に基づいています。フェッチするこの番号は、関数パラメーターで提供されます。

getCheapestProduct(id:number): Product[] { 
    return this.Products; // will have to return the first few elements/
          //(specified by id) in ascending prices. 
} 

助けてください!

+1

コールバック関数を提供することによって、オブジェクトの配列を並べ替えることができます。こちらをご覧ください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort – Matey

+0

これはTypeScriptとは関係ありません。あなたは製品をソートし、最初の 'n'要素を取得する必要があります。両方のタスクは、SOまたはあなたの優先検索プロバイダの短い検索で解くべきです。 – Andreas

+0

@Mateyこれはどのようにクラスオブジェクトの配列で、文字列の配列ではありません。 – yogihosting

答えて

0

私はこれを他の開発者から寄せられたコメントのために解決することができます。

getCheapestProduct(id:number): Product[] { 
    return this.Products.sort(function (a, b) { 
     return Number(a.price) - Number(b.price); 
     }).slice(1,id); 
} 

まず私はスライスを使用して、その後の並べ替えを使用しています:ここでのソリューションです。

+0

誰かがラムダ式の点で答えを与えても助けになります。 – yogihosting

関連する問題