我试图将两个相同类型的数组连接在一起。这两个数组实际上嵌套在“父”数组中。所以,目标是将其扁平化。
这是我正在使用的代码:
ngOnInit() {
this.Logs.getAllLogs()
.subscribe(logs => {
this.Logs = Object.values(logs);
console.log('First: ', this.Logs[0]);
console.log('Second: ', this.Logs[1]);
this.mergedLogs = this.Logs[0].concat(this.Logs[1]);
console.log('Together: ', this.mergedLogs);
}); }
但是我收到了这个错误:
ERROR TypeError:_this.Logs [0] .concat不是函数
编辑:有些用户建议使用扩展运算符,因此代码更改为:
ngOnInit() {
this.Logs.getAllLogs()
.subscribe(logs => {
this.Logs = Object.values(logs);
console.log('First: ', this.Logs[0]);
console.log('Second: ', this.Logs[1]);
this.mergedLogs = [...this.Logs[0], ...this.Logs[1]];
console.log('Together: ', this.mergedLogs);
});
}
但不知怎的,我仍然得到同样的错误。当我注释掉合并数组的行时,页面刷新正常,因此它不是缓存问题。
答案 0 :(得分:2)
如果你有一个相同类型的数组,你可以尝试使用扩展运算符...
,而不是使用concat()来连接数组。
使用以下代码 -
this.mergedLogs = [...this.Logs[0],...this.Logs[1]);
有关更多信息和示例,请查看此处
答案 1 :(得分:1)
你可以使用spread运算符,就像这样 - >
this.mergedLogs = [...this.Logs[0], ...this.Logs[1]];
答案 2 :(得分:0)
您犯的第一个非常明显的错误是您在订阅回调中使用this.Logs
而不是logs
。