yybing85 2010-03-16 09:59
浏览 305
已采纳

js对象做map用时遇到的棘手问题,高手看看

最近项目里用js的map结构特别频繁,所以自己写了一个,结构如下(大概描述一下,详细的就不贴了)

[code="java"]function Map{
this.data = {};
}

Map.prototype.put = function(key,value){
this.data[key] = value;
}

Map.prototype.get = function(key){
return this.data[key] ;
}[/code]

原来使用数组实现的this.data = [];
可是使用了ext框架,数组里扩充的方法比较多,for in遍历有点麻烦,就改成这样了。

但是现在出现了比较麻烦的问题

[code="java"]var m = new Map();
m.put("123fff","fishyu2010");[/code]

根本put不进去,我猜想可能是对象不支持以数字开头的属性

本来想在key的前面加个字符,可是
我在项目中已经大量使用了for(var p in m.data){}这样了遍历,这样就会有问题了。

请问高手们有没有好的解决办法。

  • 写回答

6条回答 默认 最新

  • wanghaolovezlq 2010-03-16 10:40
    关注

    我测试你写的map,是可以正常put进去的

    对象是完全支持以数字开头的属性,只不过引用方式就要改变一下

    var obj ={};

    obj['111aaa'] = 'aaaa';

    这样是完全没问题的,只是不能用obj.111aaa来取属性了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决