私のangular2アプリでは、数値をキーとしてオブジェクトの配列を返すマップを作成したいと思います。私は現在、次の方法で実装していますが、運はありません。この目的のためにどのように実装するか、他のデータ構造を使用する必要がありますか?多分速いので、地図を使いたいですか?
宣言
private myarray : [{productId : number , price : number , discount : number}];
priceListMap : Map<number, [{productId : number , price : number , discount : number}]>
= new Map<number, [{productId : number , price : number , discount : number}]>();
使用法
this.myarray.Push({productId : 1 , price : 100 , discount : 10});
this.myarray.Push({productId : 2 , price : 200 , discount : 20});
this.myarray.Push({productId : 3 , price : 300 , discount : 30});
this.priceListMap.set(1 , this.myarray);
this.myarray = null;
this.myarray.Push({productId : 1 , price : 400 , discount : 10});
this.myarray.Push({productId : 2 , price : 500 , discount : 20});
this.myarray.Push({productId : 3 , price : 600 , discount : 30});
this.priceListMap.set(2 , this.myarray);
this.myarray = null;
this.myarray.Push({productId : 1 , price : 700 , discount : 10});
this.myarray.Push({productId : 2 , price : 800 , discount : 20});
this.myarray.Push({productId : 3 , price : 900 , discount : 30});
this.priceListMap.set(3 , this.myarray);
this.myarray = null;
this.priceList.get(1);
を使用する場合、3つのオブジェクトの配列を取得したい
最初に、オブジェクトのタイプまたはインターフェースを定義します。これにより、物がより読みやすくなります。
type Product = { productId: number; price: number; discount: number };
配列ではなくサイズ1の タプル を使用しました。次のようになります。
let myarray: Product[];
let priceListMap : Map<number, Product[]> = new Map<number, Product[]>();
だから今、これはうまく動作します:
myarray.Push({productId : 1 , price : 100 , discount : 10});
myarray.Push({productId : 2 , price : 200 , discount : 20});
myarray.Push({productId : 3 , price : 300 , discount : 30});
priceListMap.set(1 , this.myarray);
myarray = null;
( 遊び場のコード )