J'ai parcouru les questions JavaScript sur ce sujet, cette question concerne spécifiquement Angular2 avec TypeScript.
Ce que j'essaye de faire est de concaténer les objets json dans 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 puis - je concaténer data.results
à this.results
avec tapuscrit et angulaire?
this._slug
et this._next
sont mis en classe.
Merci.
arrays
typescript
angular
Rivadiz
la source
la source
L' opérateur de propagation est plutôt cool.
this.results = [ ...this.results, ...data.results];
Vous pouvez en savoir plus sur l'opérateur de diffusion ici.
la source
Avec l' opérateur angulaire 6 et le concat ne fonctionnent pas. Vous pouvez le résoudre facilement:
la source
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 remplacer...this.results,
par...this.results ? this.results : [],
.J'espère que cela t'aides
la source
essaye ça
data => { this.results = [...this.results, ...data.results]; this._next = data.next; }
la source
let studentDetails = [ { studentId: 1, studentName: 'Sathish', gender: 'Male', age: 15 }, { studentId: 2, studentName: 'kumar', gender: 'Male', age: 16 }, { studentId: 3, studentName: 'Roja', gender: 'Female', age: 15 }, {studentId: 4, studentName: 'Nayanthara', gender: 'Female', age: 16}, ]; let studentMark = [ { studentId: 1, mark1: 80, mark2: 90, mark3: 100 }, { studentId: 2, mark1: 80, mark2: 90, mark3: 100 }, { studentId: 3, mark1: 80, mark2: 90, mark3: 100 }, { studentId: 4, mark1: 80, mark2: 90, mark3: 100 }, ];
const mergeById = (array1, array2) => array1.map(itm => ({ ...array2.find((item) => (item.studentId === itm.studentId) && item), ...itm }));
let result = mergeById(studentDetails, studentMark
);[ {"studentId":1,"mark1":80,"mark2":90,"mark3":100,"studentName":"Sathish","gender":"Male","age":15},{"studentId":2,"mark1":80,"mark2":90,"mark3":100,"studentName":"kumar","gender":"Male","age":16},{"studentId":3,"mark1":80,"mark2":90,"mark3":100,"studentName":"Roja","gender":"Female","age":15},{"studentId":4,"mark1":80,"mark2":90,"mark3":100,"studentName":"Nayanthara","gender":"Female","age":16} ]
la source