J'ai parcouru les questions JavaScript sur ce sujet, cette question concerne spécifiquement Angular2 avec TypeScript.
Ce que j'essaie de faire est de concaténer les objets JSON à un tableau.
Mon code ressemble à quelque chose comme ça,
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);
}
);
}
Comment concaténer data.results
à this.results
avec TypeScript et angular?
this._slug
et this._next
sont définis sur la classe.
merci.
Je pense que vous devriez plutôt utiliser ce qui suit:
data => {
this.results = this.results.concat(data.results);
this._next = data.next;
},
De la concat
doc :
La méthode concat () renvoie un nouveau tableau composé du tableau sur lequel elle est appelée jointe au (x) tableau (s) et/ou à la (aux) valeur (s) fournies en tant qu'arguments.
L'opérateur de propagation est un peu cool.
this.results = [ ...this.results, ...data.results];
L'opérateur de propagation vous permet de placer facilement une version développée d'un tableau dans un autre tableau.
Avec angular 6 opérateur d'étalement et concat ne fonctionne pas. Vous pouvez le résoudre facilement:
result.Push(...data);
Vous pouvez également utiliser le formulaire recommandé par ES6:
data => {
this.results = [
...this.results,
data.results,
];
this._next = data.next;
},
Cela fonctionne si vous initialisez d'abord votre tableau (public results = [];
); sinon remplacez ...this.results,
par ...this.results ? this.results : [],
.
J'espère que cela t'aides