修改json对象并更改mock数据
Modified json object and change the mock data
转换:
var seriesData = [{
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 6,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 2,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 7,
startDayID: 20130814,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 5,
startDayID: 20130815,
}];
进入此对象:
var seriesData = [{
feederId: "PTS113T",
servicePointEventLowCount: 6,
servicePointEventHighCount: 2,
startDayID: 20130812,
}, {
feederId: "PTS113T",
servicePointEventLowCount: 7,
startDayID: 20130814,
}, {
feederId: "PTS113T",
servicePointEventHighCount: 5,
startDayID: 20130815,
}];
如果startDayID
相同或不同,我将基于它合并值。
我尝试过的:
if (seriesData) {
var mockdata = [];
for (var i = 0; i < seriesData.length; i += 2) {
var data = {};
if ((seriesData[i].startDayID) == (seriesData[i + 1].startDayID)) {
data.feederId = seriesData[i].feederId;
data.servicePointEventLowCount = seriesData[i].servicePointEventCount;
data.servicePointEventHighCount = seriesData[i + 1].servicePointEventCount;
data.startDayID = seriesData[i].startDayID;
}
mockdata.push(data);
}
请引导我!!
一个更健壮、通用的解决方案:
var seriesData = [{
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 6,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 2,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 7,
startDayID: 20130814,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 5,
startDayID: 20130815,
}];
var flag = true;
var mockData = [];
for(var i=0; i<seriesData.length; i++){
for(var j=i+1; j<seriesData.length; j++){
if(seriesData[i].startDayID === seriesData[j].startDayID){
var newSeriesData = [];
newSeriesData.feederId = seriesData[i].feederId;
if(seriesData[i].servicePointEventCount > seriesData[j].servicePointEventCount){
newSeriesData.servicePointEventLowCount = seriesData[j].servicePointEventCount;
newSeriesData.servicePointEventHighCount = seriesData[i].servicePointEventCount;
}
else {
newSeriesData.servicePointEventLowCount = seriesData[i].servicePointEventCount;
newSeriesData.servicePointEventHighCount = seriesData[j].servicePointEventCount;
}
newSeriesData.startDayID = seriesData[i].startDayID;
seriesData.splice(j, 1);
flag = false;
mockData.push(newSeriesData);
}
}
if(flag)
mockData.push(seriesData[i]);
flag = true;
}
//Checking resultant array by printing out values:
document.write("[");
for(var i=0; i<mockData.length; i++){
document.write("{<br>");
document.write("feederId: " + mockData[i].feederId + "<br>");
if(mockData[i].servicePointEventCount === undefined){
document.write("servicePointEventLowCount: " + mockData[i].servicePointEventLowCount + "<br>");
document.write("servicePointEventHighCount: " +mockData[i].servicePointEventHighCount + "<br>");
}
else {
document.write("servicePointEventCount" +mockData[i].servicePointEventCount + "<br>");
}
document.write("startDayID" +mockData[i].startDayID + "<br>");
document.write("}");
}
document.write("]<br>");
通过运行代码段检查结果数组。。
我就是这么做的:
if (seriesData) {
var mockdata = [];
for (var i = 0, j = 1; j < seriesData.length; i++, j++) {
var data = {};
if ((seriesData[j]) && (seriesData[i].startDayID) == (seriesData[j].startDayID)) {
data.feederId = seriesData[i].feederId;
data.servicePointEventLowCount = seriesData[i].servicePointEventCount;
data.servicePointEventHighCount = seriesData[j].servicePointEventCount;
data.startDayID = seriesData[i].startDayID;
i++;
j++;
}
else {
data = seriesData[i];
}
mockdata.push(data);
}
}
请考虑在为运行之前测试数组长度>=2。
在这个片段中测试它
// Code goes here
var seriesData = [{
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 6,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 2,
startDayID: 20130812,
}, {
feederId: "PTS113T",
businessEventCode: "LowVoltage",
servicePointEventCount: 7,
startDayID: 20130814,
}, {
feederId: "PTS113T",
businessEventCode: "HighVoltage",
servicePointEventCount: 5,
startDayID: 20130815,
}];
if (seriesData) {
var mockdata = [];
for (var i = 0, j = 1; i < seriesData.length; i++, j++) {
var data = {};
if ((seriesData[j]) && (seriesData[i].startDayID) == (seriesData[j].startDayID)) {
data.feederId = seriesData[i].feederId;
data.servicePointEventLowCount = seriesData[i].servicePointEventCount;
data.servicePointEventHighCount = seriesData[j].servicePointEventCount;
data.startDayID = seriesData[i].startDayID;
i++;
j++;
}
else {
data = seriesData[i];
}
mockdata.push(data);
}
console.log(mockdata);
}
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 画布数据到图像
- 使用jquery将mysql数据获取到新的表行中
- 使用html中的外部javascript进行数据验证
- 有时数据是't显示在浏览器中
- React中的数据集表示
- 如何拦截ajax调用以返回mock数据
- Ember CLI with http-mock and pretender, 如何管理模拟数据
- 修改json对象并更改mock数据