Saya telah membahas pertanyaan JavaScript tentang topik ini, pertanyaan ini secara khusus tentang Angular2 dengan TypeScript.
Apa yang saya coba lakukan adalah menggabungkan objek json ke array.
Kode saya terlihat seperti ini,
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);
}
);
}
Bagaimana saya bisa menggabungkan data.results
untuk this.results
dengan naskah dan sudut?
this._slug
dan this._next
ditetapkan di kelas.
Terima kasih.
arrays
typescript
angular
Rivadiz
sumber
sumber
The spread Operator yang agak dingin.
this.results = [ ...this.results, ...data.results];
Anda dapat membaca tentang operator penyebaran di sini.
sumber
Dengan operator sebaran sudut 6 dan concat tidak berfungsi. Anda bisa mengatasinya dengan mudah:
sumber
Anda juga dapat menggunakan formulir yang direkomendasikan oleh ES6:
data => { this.results = [ ...this.results, data.results, ]; this._next = data.next; },
Ini bekerja jika Anda menginisialisasi array Anda terlebih dahulu (
public results = [];
); jika tidak diganti...this.results,
dengan...this.results ? this.results : [],
.Semoga ini membantu
sumber
coba ini
data => { this.results = [...this.results, ...data.results]; this._next = data.next; }
sumber
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} ]
sumber