用 Angular 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.results 连接到 this.results 与打字稿和角度?

this._slugthis._next 在类上设置。

谢谢。

原文由 user5170375 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

使用 Angular 6 扩展运算符concat 不起作用。您可以轻松解决它:

 result.push(...data);

原文由 MooN 发布,翻译遵循 CC BY-SA 4.0 许可协议

假设我有两个数组。第一个有学生详细信息和学生标记详细信息。两个数组都有共同的键,即’studentId’

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

我想根据键“studentId”合并两个数组。我创建了一个函数来合并两个数组。

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

原文由 Yogesh Waghmare 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏