javascript - 将 observable 转换为数组
问题描述
我想将 observable 转换为表格。我可以通过在零线上搜索来显示一个表格,但我想浏览所有行以检索所有值。如何遍历所有行而不是仅获取第一个值?谢谢你
export class DataComponent implements OnInit {
constructor(private router: Router,public authService: AuthService,public dataService: DatasService) { }
HygroS3;
HygroS4;
HygroS5;
date;
datatodisplay2;
datatodisplay;
data1 : any [];
config1: GanttChartConfig;
elementId1: string;
ngOnInit() {
this.datatodisplay = this.dataService.getDatas();
let interestingFields =['date','HygroS3','HygroS4','HygroS5'];
this.datatodisplay.subscribe(val => {
this.HygroS3 = val[0].HygroS3;
this.HygroS4 = val[0].HygroS4;
this.HygroS5 = val[0].HygroS5;
this.date = val[0].date;
this.data1=[['date','HygroS3','HygroS4','HygroS5'],[this.date,this.HygroS3,this.HygroS4,this.HygroS5]]
console.log(this.data1);
});
this.config1 = new GanttChartConfig(new Date (),0,0,0);
this.elementId1 = 'myGanttChart';
}
我得到这个:
Array(2)
0: (4) ["date", "HygroS3", "HygroS4", "HygroS5"]
1: (4) ["24032019170117", 92, 85, 63]
解决方案
嗯..我不确定我是否过度简化了这种情况,或者我不完全理解你的问题,但假设返回的 observableval
是一个对象数组 [{.....}, {...... ...}],并且您希望返回的格式位于数组数组 [[..],[....]] 中。
ngOnInit() {
this.datatodisplay.subscribe(val => {
const headers = ['date','HygroS3','HygroS4','HygroS5'];
const res = val.map(row => {
return [row['date'], row['HygroS3'], row['HygroS4'], row['HygroS5']];
});
this.data1 = [headers, ...res]
console.log(this.data1);
});
}
这将为您提供问题末尾提到的所需格式的数组,标题位于第一行,其他值位于后续行。
推荐阅读
- sql - 如何获得 SQLite 中多列的最大值?
- uwp - UWP如何区分输入设备
- php - 如何在搜索词Wordpress搜索中省略复数('s')时创建要忽略的单词数组
- jenkins - 扩展选择参数插件问题
- oracle - 如何修复 devenvexe.config 中的无效扩展路径
- php - PHP 日期读取问题,我得到的是数字而不是日期
- node.js - 无法将依赖项发布到私有 npm 存储库
- apache - Apache HTTPD - 虚拟主机中的 AliasMatch 和 ProxyPass
- maven - 如何使用 maven 构建 wso2 汽车应用程序?
- json - SSMS:OPENJSON 有效,但不适用于直接 REST 调用