[英]mock json object in some other format javascript
I have one variable with json object. 我有一个带有json对象的变量。
var seriesData = [{
feederId: "TUR 112",
businessEventCode: "LowVoltage",
servicePointEventCount: 4
}, {
feederId: "TUR 112",
businessEventCode: "HighVoltage",
servicePointEventCount: 2
}, {
feederId: "ABC",
businessEventCode: "LowVoltage",
servicePointEventCount: 4
}, {
feederId: "ABC",
businessEventCode: "HighVoltage",
servicePointEventCount: 1
}];
I want to Mock this data into this json formet 我想将此数据模拟到此json格式中
var MockService= [{
feederId: "TUR 112",
servicePointEventLowCount: 4,
servicePointEventHighCount: 2
}, {
feederId: "ABC",
servicePointEventLowCount: 6,
servicePointEventHighCount:3
}];
For that My code : 为此我的代码:
if (seriesData) {
var mockdata= [];
for (var i = 0; i < seriesData.length; i++) {
var data = {};
data.feederId = seriesData[i].feederId;
if (seriesData[i].businessEventCode == 'LowVoltage') {
data.servicePointEventLowCount = seriesData[i].servicePointEventCount;
} else {
data.servicePointEventHighCount = seriesData[i].servicePointEventCount;
}
mockdata.push(data);
}
}
var seriesDataMock = mockdata;
I am getting response as - 我得到的回应是-
[{
feederId: "TUR 112",
servicePointEventLowCount: 4,
}, {
feederId: "TUR 112",
servicePointEventHighCount: 2
}, {
feederId: "ABC",
servicePointEventLowCount: 6,
}, {
feederId: "ABC",
servicePointEventLowCount: 6,
}];
But I want it to be like this-- 但我希望它像这样
[{
feederId: "TUR 112",
servicePointEventLowCount: 4,
servicePointEventHighCount: 2
}, {
feederId: "ABC",
servicePointEventLowCount: 6,
servicePointEventHighCount:3
}];
Combined values for feederID... feederID的组合值...
Please guide me if I m missing something. 如果我缺少任何东西,请指导我。
Thanks! 谢谢!
You set your Mockdata to an empty array, then you proceed to overwrite the same properties for each iteration. 您将Mockdata设置为空数组,然后继续为每次迭代覆盖相同的属性。 I think you want to append data objects for each iteration like this:
我认为您想为每次迭代添加数据对象,如下所示:
pseudo: 伪:
for (var i = 0; i < seriesData.length; i++) {
var data = {};
data.feederId = seriesData[i].feederId;
Mockdata.push(data);
...
}
EDIT: I read your updated question and it seems like you want to merge each two sets into one? 编辑:我读了您的更新的问题,似乎您想将每两个集合合并为一个? An easy way would be to do this instead:
一个简单的方法是改为执行此操作:
for (var i = 0; i < seriesData.length; i+=2) {
var data = {};
data.feederId = seriesData[i].feederId;
data.servicePointEventLowCount = seriesData[i].servicePointEventCount;
data.servicePointEventHighCount = seriesData[i+1].servicePointEventCount;
Mockdata.push(data);
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.