javascript - 我需要从不同的 javascript 文件中访问数据,并将其更改为字符串
问题描述
我需要访问这种格式的数据才能与 Chart.js 一起使用:
var dataArrays = {
id: 1,
time : [1543855884861,1543855889279],
parsetTimestamp: ["3 Dec 2018 17:51:24","3 Dec 2018 17:51:29"],
temperature: [23.4,24.4],
humidity: [38,40],
light: [1000,1100],
soil: [750,800],
fanIn: [1,0],
fanOut: [0,1],
ledIntensity: [1024,1024]
}
我需要从不同的 js 文件中获取数据,格式如下:
var data = [{
name: 'tube',
time: 1546614557692,
temperature: 23,
humidity: 49,
light: 1718,
soil: 1024,
fanIn: 0,
fanOut: 0,
ledIntensity: 1024
},
{
name: 'tube',
time: 1546614557697,
temperature: 23,
humidity: 49,
light: 1721,
soil: 1024,
fanIn: 0,
fanOut: 0,
ledIntensity: 1024
}
]
我想我可以像这样添加来自不同变量的数据:
var dataArrays.time = [data1.time, data2.time];
但我没有两个变量,我只有一个包含所有数据,它位于不同的文件中。
有没有办法做到这一点?
解决方案
如果您只是想合并数组的对象,您可以使用它Array.prototype.reduce
来执行此操作。
只需遍历数组中包含的对象的键data
并合并重复的键并将它们放入数组中并将其分配给累积的merged
对象。
var data = [{
name: 'tube',
time: 1546614557692,
temperature: 23,
humidity: 49,
light: 1718,
soil: 1024,
fanIn: 0,
fanOut: 0,
ledIntensity: 1024
},
{
name: 'tube',
time: 1546614557697,
temperature: 23,
humidity: 49,
light: 1721,
soil: 1024,
fanIn: 0,
fanOut: 0,
ledIntensity: 1024
}
]
var merged = data.reduce((acc, ele) =>{
for(key in ele){
acc[key] = acc[key] ? acc[key].concat(ele[key]) : [ele[key]];
}
return acc;
},{});
console.log(merged);
推荐阅读
- c# - 在 Parallel.ForEach 循环中进行异步数据库调用会提高性能吗?
- button - 如何将 TextTrimming CharacterEllipsis 应用于 TextBlock 中的文本
- android - 如何将 Array<(out) Event!> 转换为 ArrayList
在导航控制器中使用安全参数传递数据后? - xml - 使用 rtf 以数字格式将每组中两个值的总和相除
- android - 如何从android中的底部表中删除顶部填充?
- python - tkinter 中的语法错误
- python - numpy矩阵对角线填充交替值
- php - 如何在PHP中获取负值的日期差异
- settings - WebStorm 中的自动换行
- node.js - Java 到 Node.js AES/ECB/PKCS5Padding 加密