原始data格式:
data:{
lstReceiveStakeNumber:[101,102,103,104,105,106,107],
wz:{
"碎石": [{
name: 107,
weight: 38.12
}],
"水泥":[{
name: 102,
weight: 15.97
}]
}
}
var xValue = [],
yValue = [];
var materialnameData = Object.keys(data.wz); //获取站点列表
var weightData = Object.values(data.wz); //获取出入库数据
var RMS = [];
var xRMSData = [];
var yRMSData = new Array();
//先循环物资的value值
for (var m in weightData) { //3
var name = [];
//获取物资下面所有的桩号值
for (var n in weightData[m]) {
name.push(weightData[m][n].name);
}
//内部循环桩号数组,若每个物资内部的长度小于桩号数组的长度,并且当前桩号没有在上面的桩号数组中,则用weight=0补齐数组
for (var l in data.lstReceiveStakeNumber) {
if (weightData[m].length < data.lstReceiveStakeNumber.length && name
.indexOf(data.lstReceiveStakeNumber[l]) == -1) {
weightData[m].push({
name: data.lstReceiveStakeNumber[l],
weight: 0
})
}
}
}
// 排序 桩号正序
for (var w in weightData) {
weightData[w].sort(function(x, y) {
return x.name - y.name;
});
}
for (var c in weightData[0]) {
xRMSData.push(numChangeStake(weightData[0][c].name));
}
for (var d in weightData) {
yRMSData[d] = new Array();
for (var t in weightData[d]) {
yRMSData[d].push(weightData[d][t].weight);
}
}
调整后的data
xRMSData: [101,102,103,104,105,106,107]
yRMSData: [
[0, 0, 0, 0, 0, 0, 38.12],
[0, 15.97, 0, 0, 0, 0, 0]
]