fusionner deux tableaux d’objects avec Angular 2 et TypeScript?

J’ai parcouru les questions JavaScript sur ce sujet, cette question concerne spécifiquement Angular2 avec TypeScript.

Ce que je tente de faire est de concaténer les objects json à un tableau.

Mon code ressemble à ceci,

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 puis-je concaténer des data.results à this.results avec des caractères typescripts et angulars?

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 doc concat :

La méthode concat () renvoie un nouveau tableau comprenant le tableau sur lequel il est appelé joint avec le ou les tableaux et / ou la ou les valeurs fournies comme arguments.

L’ opérateur de diffusion est plutôt cool.

 this.results = [ ...this.results, ...data.results]; 

L’opérateur de diffusion vous permet de placer facilement une version étendue d’un tableau dans un autre tableau.

Vous pouvez lire sur l’opérateur de propagation ici.

 var hege = ["Cecilie", "Lone"]; var stale = ["Emil", "Tobias", "Linus"]; var children = hege.concat(stale); 

https://www.w3schools.com/jsref/jsref_concat_array.asp

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 : [], ...this.results ? this.results : [],

J’espère que cela t’aides