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 相关文章推荐
IE浏览器PNG图片透明效果代码
Sep 02 Javascript
js 方法实现返回多个数据的代码
Apr 30 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
Mar 30 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
Nov 18 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
vue js秒转天数小时分钟秒的实例代码
Aug 08 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
vue修改Element的el-table样式的4种方法
Sep 17 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 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/11/25 PHP
php下实现农历日历的代码
2007/03/07 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
jquery创建div 实现代码
2009/04/27 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
js实现放大镜特效
2017/05/18 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
详解Python3序列赋值、序列解包
2019/05/14 Python
python async with和async for的使用
2019/06/20 Python
python使用递归的方式建立二叉树
2019/07/03 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python中url标签使用知识点总结
2020/01/16 Python
浅谈PyTorch中in-place operation的含义
2020/06/27 Python
介绍一下Java的安全机制
2012/06/28 面试题
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
医药代表个人的求职信分享
2013/12/08 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers