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的值);

解决方案 »

  1.   


    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{}
      

  2.   

    还有点问题:
    lastchartdata.push({day:json[j].day,lv:eval("json[j]." + targetArray[i])});
    刚才我简化了下,还有个day怎么push啊?谢谢啦
      

  3.   


    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{}
      

  4.   

        tmp.day = json[j].day;PS:你需要再回复时引用一下某个回复,不然不知道你需要再回复。
      

  5.   

    你不是写好了,不用eval,直接这样就行了       lastchartdata.push({ lv:json[j][i],day:json[j].day })
      

  6.   

    chartData.push({
      date: newDate,
      visits: visits,
      visitss:visitss
    });
    最终结果我就是想做成这个样式,但是里面的数据visits,visitss...有很多
    二维数据里面有数据,换成这种格式不知道该怎么拼接...
      

  7.   

    [align=left]var lastchartdata=[];
           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]
      

  8.   

    比如:
    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},{}]
    依次相加...
    我写的程序:
      

  9.   

    你的意思是把数组 totalJsonArray 中的每个json字符串都变成对象且不需要修改吗?如果是的话:var lastchartdata=[];
    for(var i = 0, il = totalJsonArray.length; i < il; i++){
        lastchartdata.push(Ext.util.JSON.decode(totalJsonArray[i]))
    }如果是要对没个json字符串转为的对象再修改,那么你的修改规则是什么?
      

  10.   

    var json = Ext.util.JSON.decode(totalJsonArray[i])比如i=0时json的length为10,i=1,2,3length也是10
    i=0时第一个数据拿出来放到[{a:xx},{b:xx}...]
    i=1时数据拿出来和i=0时的数据整合[{a:xx,m:xx},{b:xx,n:xx}]
    就是把n个i的json数据的第一个拿出来放到一起,第二个拿出来放到一起...
    这样你能明白么?
      

  11.   

    有一个数据能出来了,就是else后面的为数组添加不对
    有一个数据:[{a:xx},{b:xx}]
    在数组0坐标添加:[{a:xx,m:xx}]
    就是{a:xx--这个里面再添加数据}
      

  12.   

    第一种
    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:我看的有点大脑缺氧~~~~~
      

  13.   


    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:不是为了分来的,能帮就帮 : )
      

  14.   

    抱歉,函数后面少了两句……
    [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
        }
    }