数组问题求助

zhangweitc123 2013-01-15 02:26:06

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 : "数据加载中......"
}
})

}


怎么样才能使定义的对象名中带有数组里的值,像注释的那样
...全文
198 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
鸡肋啊 2013-01-15
  • 打赏
  • 举报
回复
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 : "数据加载中......" } }) }
「已注销」 2013-01-15
  • 打赏
  • 举报
回复
用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);
运行一下上面的代码,是不是感觉有点像反射。
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
引用 12 楼 bbjbepzz 的回复:
JavaScript code ? 12345678910 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); con……
是这个意思,但是你写到str里面后面怎么用啊
「已注销」 2013-01-15
  • 打赏
  • 举报
回复
那个是google浏览器打印的一些调试信息,你按F12,切换到Console选项卡可以看到,IE不支持,如果你用的是IE的话,把console.log改成alert,firefox可以用console.log
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
console.log是什么
「已注销」 2013-01-15
  • 打赏
  • 举报
回复

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);
这个意思不?
似梦飞花 2013-01-15
  • 打赏
  • 举报
回复
var gridList = ['gzjh','xgbb','tsld','jckh','shfx','xbsx','gzzj']; for(var i in gridList){ window['grid_'+gridList[i]]=gridList[i]; } alert(grid_gzjh); 不很明白楼主的意思
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
首先感谢zhangwei412827_ (你也叫张伟?), 不过你误解我的意思了, 我只是想通过循环生成对象的名字中包含数组中的内容 比如,生成对象:var grid_gzjh var grid_xgbb var grid_tsld, 对应数组里面的:'gzjh','xgbb','tsld' 仅此而已
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
我先试试看,等会儿回复你
马肠河 2013-01-15
  • 打赏
  • 举报
回复

for (var pro in gridDataObj){
alert(pro+":"+gridDataObj[pro]);
}
最后一个循环查看一下生成的对象的内容;
马肠河 2013-01-15
  • 打赏
  • 举报
回复

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);
}
楼主是这个意思吗?
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
有大牛会的吗
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
比如第一次for循环,我要定义的是 var grid_gzjh ,而数组里的gridList[0]='gzjh', 怎么样才能把gridList[0]给用上
马肠河 2013-01-15
  • 打赏
  • 举报
回复
引用 3 楼 zhangweitc123 的回复:
差不多是这个意思,但是要加上前缀
对象里面属性名字自己起啊!不明白楼主啥意思!
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
差不多是这个意思,但是要加上前缀
马肠河 2013-01-15
  • 打赏
  • 举报
回复
想让数组转换成一个对象吗?
zhangweitc123 2013-01-15
  • 打赏
  • 举报
回复
忘了说了,这个是ext里面的

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧