将两个对象数组与角度2和 TypeScript 合并?

我已经浏览了关于这个主题的 JavaScript 问题,这个问题是关于 Angular2和 TypeScript 的。

我要做的是将 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);
}
);
}

我如何连接 data.resultsthis.results与打字机和角度?

this._slugthis._next设置在课堂上。

谢谢。

288465 次浏览

我认为你应该使用下面的方法:

data => {
this.results = this.results.concat(data.results);
this._next = data.next;
},

来自 concat 医生:

Concat ()方法返回一个新数组,该数组由调用它的数组以及作为参数提供的数组和/或值组成。

扩散算符扩散算符有点酷。

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

扩展运算符允许您轻松地将数组的扩展版本放置到另一个数组中。

你可以在这里阅读有关扩展运算符。

你也可以使用 ES6推荐的表格:

data => {
this.results = [
...this.results,
data.results,
];
this._next = data.next;
},

如果首先初始化数组(public results = [];) ,则可以这样做; 否则将 ...this.results,替换为 ...this.results ? this.results : [],

希望这个能帮上忙

角度为6的 扩散算符扩散算符连接不起作用。你可以很容易地解决这个问题:

result.push(...data);

试试这个

data => {
this.results = [...this.results, ...data.results];
this._next = data.next;
}

假设我有两个数组。第一个数组有学生详细信息和 两个数组都有一个共同的键,即 “ Student Id”

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 },
];

我想合并两个数组的基础上的关键字“ stuentId” 创建了一个函数来合并两个数组。

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}
]