私はバックエンドAPIを照会するサービスを持っています。 APIは、カンマで区切られた一連のテキストを返します。これらの列は、私が作成したTypeScriptクラスの属性に対応しています。クラスは次のとおりです。Typescript/Angularでオブジェクトに配列をマッピングする
export class TopTalker {
constructor(
public source: string,
public protocol: number,
public packets: number,
public _percent: string,
public _tally: string
) {}
}
私は現在、そのように、これらのうち、オブジェクトを構築しています:
[ "8.248:ここ
は、APIによって返されるデータの一例です「192.168.2.86,6,604136,4.559450,76.232525」、「192.168.2.43,6,295422,2.29597」、 「78.462092」、「192.168.2.39,6,254746,1.922583,80.384675」、「8.248.211.241,6,182544,1.377670,81.762345」、「192 」、「8.250.125.246,6,152862,1.153658,84.275697」、「8.248.213.243,6,93544,0.705982,84.981679」、「167.206.10.209,6,69862 、0.527253,85.508931 "、" "]getTopTalkers() { this._silk.topTalkers().subscribe( data => { let results = <any>[]; results = data; this.topTalkers = <any>[]; for (let row of results) { let thisTalker = row.split(/,/); let a = new TopTalker( thisTalker[0], thisTalker[1], thisTalker[2], thisTalker[3], thisTalker[4]); if(thisTalker.length > 1){ // Was getting a blank line this.topTalkers.push(a); } } console.log(this.largestTransfers); }, err => console.error(err), () => console.log('Processed talkers') ); }
これは機能しますが、実際は間違っています。 AngularまたはTypeScriptのいくつかの機能がありますが、これはオブジェクトの配列を直接作成するために各行をマップできるようにしていますか?
コンマで区切られた文字列をTopTalkerの配列に変換したいのですか? – mchandleraz
あなたは変換をそれ自身のファクトリ関数に移すことができます。それは行を受け取り、読みやすくするためにTopTalkerを返しますが、それはかなりです。 – toskv
@toskvモジュール化する以外に、実際にはもっと「自動」なものは何もありません。 –