我是JavaScript的新手,我正在为我的温度传感器编写Angular nvD3图表。
我有以下数据变量:
var data = [
{
key: 'Pt #1',
values: [{x: "04.10.2016", y: 14 },{x: "05.10.2016", y: 16 },{x: "06.10.2016", y: 15 },{x: "07.10.2016", y: 16 }]
},
{
key: 'PT #2',
values: [{x: "04.10.2016", y: 39 },{x: "05.10.2016", y: 40 },{x: "06.10.2016", y: 47 },{x: "07.10.2016", y: 22 }]
},
{
key: 'PT #3',
values: [{x: "04.10.2016", y: 22 },{x: "05.10.2016", y: 23 },{x: "06.10.2016", y: 22 },{x: "07.10.2016", y: 43 }]
},
{
key: 'PT #4',
values: [{x: "04.10.2016", y: 25 },{x: "05.10.2016", y: 22 },{x: "06.10.2016", y: 23 },{x: "07.10.2016", y: 12 }]
},
{
key: 'PT #5',
values: [{x: "04.10.2016", y: 17 },{x: "05.10.2016", y: 17 },{x: "06.10.2016", y: 16 },{x: "07.10.2016", y: 37 }]
},
{
key: 'PT #6',
values: [{x: "04.10.2016", y: 24 },{x: "05.10.2016", y: 24 },{x: "06.10.2016", y: 25 },{x: "07.10.2016", y: 43 }]
},
{
key: 'PT #7',
values: [{x: "04.10.2016", y: 11 },{x: "05.10.2016", y: 12 },{x: "06.10.2016", y: 11 },{x: "07.10.2016", y: 11 }]
}
];
由于数据对象内的数据必须由后来编写的脚本自动添加,因此我想知道如何访问数据变量中的某个键#并将数据添加到数据变量中。
例如,我想将第二天及其温度添加到关键的PT#1'价值观" 08.10.2016"从那天开始的温度而不删除其他温度,我该怎么做?
非常感谢!
答案 0 :(得分:1)
你可以通过使用'forEach'简单地浏览数组(数据),并在检查每个项目时查找它的键是否与你之后的键匹配。如果是这样,请将该对象的“值”推送到对象数组
var newObj = { x: "08.10.2016", y: 34 };
data.forEach(item => {
if (item.key === 'Pt #1') item.values.push(newObj)
});
答案 1 :(得分:0)
您将迭代array of objects
并找到相应的key
,然后操纵object
的值,如下所示:
data.forEach(function(item) {
if(item.key === 'Pt #1'){
item.values.forEach(function(subItem) {
console.log("subItem", subItem);
if(subItem.y == '14') {
subItem.x = '08.10.2016'
}
});
}
});
以下是相同的小提琴: