var gridList = ['gzjh','xgbb','tsld','jckh','shfx','xbsx','gzzj'];
var gridLLen = gridList.length;
for(var i=0;i<gridLLen;i++){
var grid_gzjh = new Ext.grid.GridPanel({
//var 'grid_'+gridList[i] = new Ext.grid.GridPanel({
frame : false,
id : 'grid_'+gridList[i],
name : 'grid_'+gridList[i],
ds : ds_gzjh,
cm : cm_gzjh,
height : 500,
loadMask : {
msg : "数据加载中......"
}
})}
怎么样才能使定义的对象名中带有数组里的值,像注释的那样

解决方案 »

  1.   

    忘了说了,这个是ext里面的
      

  2.   

    比如第一次for循环,我要定义的是
    var grid_gzjh ,而数组里的gridList[0]='gzjh',
    怎么样才能把gridList[0]给用上
      

  3.   

     var gridList = ['gzjh','xgbb','tsld','jckh','shfx','xbsx','gzzj'];
    var gridDataArray=[];
    for(var i=0;i<gridList.length;i++)
    {
    var keyName="grid_"+gridList[i];
    gridDataArray.push('"'+keyName+'"'+":"+'"'+gridList[i]+'"');
    }
    var gridDataObj="{"+gridDataArray.join(",")+"}";
    gridDataObj=eval("("+gridDataObj+")");
    for (var pro in gridDataObj){
    alert(pro);
    }
    楼主是这个意思吗?
      

  4.   


    for (var pro in gridDataObj){
    alert(pro+":"+gridDataObj[pro]);
    }最后一个循环查看一下生成的对象的内容;
      

  5.   

    首先感谢zhangwei412827_ (你也叫张伟?),
    不过你误解我的意思了,
    我只是想通过循环生成对象的名字中包含数组中的内容
    比如,生成对象:var grid_gzjh var grid_xgbb var grid_tsld,
    对应数组里面的:'gzjh','xgbb','tsld'
    仅此而已
      

  6.   

    var gridList = ['gzjh','xgbb','tsld','jckh','shfx','xbsx','gzzj'];
    for(var i in gridList){
    window['grid_'+gridList[i]]=gridList[i];
    }
    alert(grid_gzjh);
    不很明白楼主的意思
      

  7.   


    var arr = ['gzjh','xgbb','tsld'];
    var str = '';
    for(var i in arr){
    str+='var grid_'+arr[i]+' = "' + arr[i] + '";';
    }
    eval(str);
    console.log(grid_gzjh);
    console.log(grid_xgbb);
    console.log(grid_tsld);
    这个意思不?
      

  8.   

    那个是google浏览器打印的一些调试信息,你按F12,切换到Console选项卡可以看到,IE不支持,如果你用的是IE的话,把console.log改成alert,firefox可以用console.log
      

  9.   

    是这个意思,但是你写到str里面后面怎么用啊
      

  10.   

    用eval函数,你去网上搜一下js eval的用法。function Person(){
        this.name='person';
    }
    var person = 'new Person()';
    console.log(typeof person);
    person = eval(person);
    console.log(typeof person);
    console.log(person.name);运行一下上面的代码,是不是感觉有点像反射。
      

  11.   


    var gridList = ['gzjh','xgbb','tsld','jckh','shfx','xbsx','gzzj'];
    var oblist=new Array();
    var gridLLen = gridList.length;
    for(var i=0;i<gridLLen;i++){
    oblist[i]='grid_'+gridList[i];
    var oblist[i] = new Ext.grid.GridPanel({
    frame : false,
    id : 'grid_'+gridList[i],
    name : 'grid_'+gridList[i],
    ds : ds_gzjh,
    cm : cm_gzjh,
    height : 500,
    loadMask : {
    msg : "数据加载中......"
    }
    })}