js以对象为索引的关联数组


Posted in Javascript onJuly 04, 2010

关于JSON对象,你可以参看wikipedia(http://zh.wikipedia.org/zh-cn/JSON),还有官方网站(http://www.json.org/json-zh.html)。

我们常说JavaScript原生支持json,因为我们可以认为json就是对JavaScript的Object对象的灵活应用。

通常我们使用json的方式,主要用作前后台数据交换的格式:

而在代码逻辑中更多的是用关联数组的方式。但即使是这样我们也很少使用对象类型作为键值对的键名。

var a= {}, b= [];

a[b] = new Date(); //通过a[b]可以取得时间值。

键名的类型可以是对象,多么美好的一件事啊!

 

不过有一个问题。如果你想这么用,需要有一个条件:数据必须是动态添加的。(目前在同学这,没有条件测试其他的浏览器,目前测试了IE8以及搜狗浏览器的IE内核和weikit内核)

测试代码如下:

var d = document.getElementById("hello"), obj = [1,2,3], a = {obj:"test"}; 
a[d] = "DOMElement"; 
alert(a[obj]); //undefined 
alert(a[d]);//DOMElement 
alert(a[document.getElementById("hello")]); //DOMElement 
a[obj] = "Array Object"; 
alert(a[obj]);
//Array Object

其实键名都是字符串:

var d = document.getElementById("hello"), obj = [1,2,3], a = {obj:"test"}; 
alert(a["obj"]); //test var str = new String("1,2,3"); 
a[obj] = "Array Object"; 
alert(a[obj]); //Array Object 
alert(a[str]); //Array Object 
var Class1 = function(_val){ 
var val = _val; 
this.toString = function(){ 
return val; 
} 
} 
var obj2 = new Class1("1,2,3"); 
alert(a[obj2]);//Array Object
Javascript 相关文章推荐
JavaScript 输入框内容格式验证代码
Feb 11 Javascript
Jquery Ajax请求代码(2)
Jan 07 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
那些精彩的JavaScript代码片段
Jan 12 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
Angular通过指令动态添加组件问题
Jul 09 Javascript
js实现搜索栏效果
Nov 16 Javascript
javascript头像上传代码实例
Sep 28 Javascript
JavaScript对象链式操作代码(jquery)
Jul 04 #Javascript
添加JavaScript重载函数的辅助方法2
Jul 04 #Javascript
为JavaScript添加重载函数的辅助方法
Jul 04 #Javascript
location.href语句与火狐不兼容的问题
Jul 04 #Javascript
JQuery从头学起第二讲
Jul 04 #Javascript
JQuery从头学起第一讲
Jul 04 #Javascript
js弹窗代码 可以指定弹出间隔
Jul 03 #Javascript
You might like
PHP一些有意思的小区别
2006/12/06 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP多文件上传实例
2015/07/09 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
Python中的生成器和yield详细介绍
2015/01/09 Python
python读取word文档的方法
2015/05/09 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
python模块之re正则表达式详解
2017/02/03 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
python自动化发送邮件实例讲解
2021/01/04 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
迟到检讨书900字
2014/01/14 职场文书
预备党员表决心书
2014/03/11 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
医德医风个人总结
2015/02/28 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书