2017-10-05 14 views
0

私は1つの配列と1つのオブジェクトを持っています。配列は単一のapi呼び出しです。 IDを送信するたびにオブジェクトを呼び出しています。私の古い配列には欠けているパラメータがあります - データ。私はこの配列にデータオブジェクトを追加する必要があります。imageIDとデータオブジェクトを持たないオブジェクトを見て、それをフィルタリングしてそこからマップするだけです。問題は、古い配列をフィルタリングするのに問題があり、データを持たないオブジェクトの呼び出しだけです。以前に欠けていた配列にオブジェクトを追加する - 角度2+ /イオン2+

[ 
{itemID: 10, color: "blue", imageID: "1", data: "somedata"} 
{itemID: 11, color: "red", imageID: "2"} 
{itemID: 12, color: "green", imageID: "2", data: "somedata2"} 
{itemID: 13, color: "green", imageID: "1", data: "somedata"} 
] 

新 - 各オブジェクトは、APIコールです。古い配列のimageIDが考慮されます。私が欲しいもの

{imageID: "1", data: "somedata"} 
{imageID: "2", data: "somedata2"} 

[ 
{itemID: 10, color: "blue", imageID: "1", data: "somedata"} 
{itemID: 11, color: "red", imageID: "2", data: "somedata2"} 
{itemID: 12, color: "green", imageID: "2", data: "somedata2"} 
{itemID: 13, color: "green", imageID: "1", data: "somedata"} 
] 

Component.ts

this.oldArray.map(res => { 

    this.new(res) 

    }) 

new(res){ 
    this.service.new(res.imageID).subscribe(icon => { 
     res.data = 'data:image/png;base64,' + icon.data; 
    } 
    ) 
    } 

答えて

1

このようにしてみてください。

ngOnInit() { 
    this.oldArray.map(obj => { 
     this.news(obj); 
    }) 
} 

news(obj) { 
    let newObj = { imageID: "2", data: "somedata2" } 
    if (!obj.data) { 
     if (obj.imageID === newObj.imageID) { 
      obj.data = newObj.data; 
      console.log('obj', obj); 
     } 
    } 
} 
関連する問題