私はこのトピックに関するJavaScriptの質問に遭遇しましたが、この質問は具体的にはTypeScriptによるAngular 2に関するものです。
私がやろうとしているのは、jsonオブジェクトを配列に連結することです。
私のコードはこんな感じです
public results: [];
public getResults(){
this._service.get_search_results(this._slug, this._next).subscribe(
data => {
this.results.concat(data.results);
this._next = data.next;
},
err => {
console.log(err);
}
);
}
TypeScriptとAngularでdata.results
をthis.results
に連結するにはどうすればよいですか?
this._slug
とthis._next
はクラスに設定されています。
ありがとう。
私はあなたがむしろ以下を使うべきだと思います:
data => {
this.results = this.results.concat(data.results);
this._next = data.next;
},
concat
から doc :
Concat()メソッドは、それが呼び出された配列と、引数として指定された配列または値(あるいはその両方)との結合で構成される新しい配列を返します。
拡散演算子はちょっとかっこいいです。
this.results = [ ...this.results, ...data.results];
スプレッド演算子を使用すると、配列の拡張バージョンを別の配列に簡単に配置できます。
角度6の場合スプレッド演算子および連結は機能しません。簡単に解決できます。
result.Push(...data);
ES6で推奨されている形式を使用することもできます。
data => {
this.results = [
...this.results,
data.results,
];
this._next = data.next;
},
あなたが最初にあなたの配列を初期化するならば、これは機能します(public results = [];
)。そうでなければ...this.results,
を...this.results ? this.results : [],
に置き換えてください。
お役に立てれば