var lastchartdata = [];
var lv = targetArray[i];
for(var j=0;j<json.length;j++){
if(j==0){
lastchartdata.push({lv:eval("json[j]." + targetArray[i])});
}else{}
各位大侠:我想问下如何把下面那个lv是上面定义的lv的值
取值的时候这样alert(lastchartdata[0].定义的lv的值);
var lv = targetArray[i];
for(var j=0;j<json.length;j++){
if(j==0){
lastchartdata.push({lv:eval("json[j]." + targetArray[i])});
}else{}
各位大侠:我想问下如何把下面那个lv是上面定义的lv的值
取值的时候这样alert(lastchartdata[0].定义的lv的值);
var lastchartdata = [];
var lv = targetArray[i];
var tmp;
for(var j=0;j<json.length;j++){
if(j==0){
tmp = {};
tmp[lv] = eval("json[j]." + targetArray[i]);
lastchartdata.push(tmp);
}else{}
lastchartdata.push({day:json[j].day,lv:eval("json[j]." + targetArray[i])});
刚才我简化了下,还有个day怎么push啊?谢谢啦
var lastchartdata = [];
var lv = targetArray[i];
var tmp;
for(var j=0;j<json.length;j++){
if(j==0){
tmp = {};
tmp[lv] = eval("json[j]." + targetArray[i]);
tmp.day = json[j].dayl;
lastchartdata.push(tmp);
}else{}
date: newDate,
visits: visits,
visitss:visitss
});
最终结果我就是想做成这个样式,但是里面的数据visits,visitss...有很多
二维数据里面有数据,换成这种格式不知道该怎么拼接...
for(var [align=left]i=0;i<totalJsonArray.length;i++){
var json = Ext.util.JSON.decode(totalJsonArray[i]);
var lv = targetArray[i];
alert(lv);
var temp;
for(var j=0;j<json.length;j++){
[/align]temp={};
if(j==0){
temp[lv] = eval("json[j]." + targetArray[i]);
temp.day = json[j].day;
lastchartdata.push(temp);
}else{
//eval("lastchartdata[i]."+targetArray[i])=eval("json[j]." + targetArray[i]);
}
}
}[/align]
var ss=[{a:xx,b:xxx,c:xxx},{a:xx,b:xxx},{a:xx,b:xxx},{}]
数组第一次循环完是:
ss=[{a:xx},{a:xx},{a:xx},{}]
第二次循环完:
ss=[{a:xx,b:xxx},{a:xx,b:xxx},{a:xx,b:xxx},{}]
依次相加...
我写的程序:
for(var i = 0, il = totalJsonArray.length; i < il; i++){
lastchartdata.push(Ext.util.JSON.decode(totalJsonArray[i]))
}如果是要对没个json字符串转为的对象再修改,那么你的修改规则是什么?
i=0时第一个数据拿出来放到[{a:xx},{b:xx}...]
i=1时数据拿出来和i=0时的数据整合[{a:xx,m:xx},{b:xx,n:xx}]
就是把n个i的json数据的第一个拿出来放到一起,第二个拿出来放到一起...
这样你能明白么?
有一个数据:[{a:xx},{b:xx}]
在数组0坐标添加:[{a:xx,m:xx}]
就是{a:xx--这个里面再添加数据}
1.totalJsonArray 是一个json字符串数组。totalJsonArray = ['[{}, {}]', '[...]']。
2.对于totalJsonArray的每个元素,都要把它所有的json对象整合到一起,最终得到一个对象一维数组 [{}, {}]。例子:totalJsonArray = [
"[{'a':'1a'}, {'b':'1b'}]",
"[{'a':'2a'}, {'b':'2b'}]"
],最终得到:
[{a:'1a', b:'1b'}, {a:'2a', b:'2b'}]。(横向整合)第二种:
1.totalJsonArray 是一个json字符串数组。totalJsonArray = ['[{}, {}]', '[...]']。
2.totalJsonArray的每个元素都有同样属性、个数的对象,最终要把totalJsonArray的每个元素里各个对象整合得到一个对象数组。例子:totalJsonArray = [
"[{'a':'1a'}, {'b':'1b'}]",
"[{'a':'2a'}, {'b':'2b'}]"
],最终得到:
[{a:['1a', '2a']}, {b:['1b', '2b']}]。(纵向整合)哪种?还是都不对?都不对就举个简单的例子,数据不要有多少,只要逻辑正确就可以。PS:我看的有点大脑缺氧~~~~~
function changeData(totalJsonArray, targetArray) {
var lastchartdata=[];
for(var i = 0, il = totalJsonArray.length; i < il; i++){
var json = Ext.util.JSON.decode(totalJsonArray[i]);
var lv = targetArray[i];
var temp = {};
for(var j = 0, jl = json.length, jo; j < jl; j++){
jo = json[i];
for(var p in jo) if(jo.hasOwnProperty(p)){
if(temp[p]){
temp[p] = [temp[p]];
temp[p].push(jo[p])
}
else temp[p] = jo[p];
}
}
}
}这个是横向整合,也不晓得是不是你想要的。函数的第二个参数没用到…… 大体结果如下:
[
"[{'a':'0a'}, {'b':'0b'}, {'c':'0c'}]",
"[{'a':'1a'}, {'b':'1b'}]",
] -->
[
{a:['0a', '1a']}, {b:['0b', '1b']}, {c:'0c'}
]PS:不是为了分来的,能帮就帮 : )
[code=javascript]
function changeData(totalJsonArray, targetArray) {
var lastchartdata=[];
for(var i = 0, il = totalJsonArray.length; i < il; i++){
var json = Ext.util.JSON.decode(totalJsonArray[i]);
var lv = targetArray[i];
var temp = {};
for(var j = 0, jl = json.length, jo; j < jl; j++){
jo = json[i];
for(var p in jo) if(jo.hasOwnProperty(p)){
if(temp[p]) {
temp[p] = [temp[p]];
[p].push(jo[p])
}
else temp[p] = jo[p];
}
}
lastchartdata.push(temp);
return lastchartdata
}
}