面对这样的字符串data: {1=[5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],2=[6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],3=[5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],4=[4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],5=[20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444], 10=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]}
data从后台传过来本为map,可是到前台成了这样的格式,要运用到echarts上的line图需要做组装
注:${chartResult}直接这样用后台传来的数据是无法展现的,为空,必须把它隐藏到一个input里取出,如<input id="chartResult" value="${chartResult}" hidden=true />
var data = $("#chartResult").val();
var data1 = data.substr(1,data.length-3);
注:data1: 1=[5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],2=[6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],3=[5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],4=[4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444],5=[20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444], 10=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
var data2 = data1.split("=[").join('*').split("],").join('*');
alert(data2);
注:js只支持replace,一般只能替换第一个字符,不支持replaceAll,而str.split(replaceStr).join('')可实现全部替换
注:data2: 1*5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 2*6, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 3*5, 5, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 4*4, 4, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 5*20, 16, 20, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444* 10*0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
var str = data2.split("*");
注:这里不能用空格分隔,因为数字之间的逗号之后也有空格,最好用空格之外的符号如*
var arr = [];
for(var index in str){
arr[index] = str[index];
}
var qtyNum = [];
for(var i = 8;i<=24;i++){
qtyNum.push("qty"+i);
}
alert(qtyNum);
var leaveDcAndNoInDepotQty = []; //出分拣未入站单量
var inDepotAndNoDeliveryQty = []; //入站未配送单量
var outDepotAndNoReturnQty = []; //出站未回单单量
var deliveryFinishedQty = []; //配送结束单量
var totalQty = []; // 总单量
注:arr[1],arr[3]等只是字符串,需要组装在list里面供line来使用
var leaveStr = arr[1].split(",");
for(var index in leaveStr){
leaveDcAndNoInDepotQty.push(leaveStr[index]);
}
var inStr = arr[3].split(",");
for(var index in inStr){
inDepotAndNoDeliveryQty.push(inStr[index]);
}
var outStr = arr[5].split(",");
for(var index in outStr){
outDepotAndNoReturnQty.push(outStr[index]);
}
var deliveryStr = arr[7].split(",");
for(var index in deliveryStr){
deliveryFinishedQty.push(deliveryStr[index]);
}
var totalStr = arr[9].split(",");
for(var index in totalStr){
totalQty.push(totalStr[index]);
}
alert(leaveDcAndNoInDepotQty);
5, 3, 5, 11, 22, 33, 44, 55, 66, 77, 88, 99, 111, 111, 222, 333, 444