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 相关文章推荐
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
JS 使用for循环遍历子节点查找元素
Sep 06 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
Vue实现选择城市功能
May 27 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
Vue Router中应用中间件的方法
Aug 06 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
Aug 05 Vue.js
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中extract()函数的定义和用法
2012/08/17 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
用jquery来定位
2007/02/20 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
javascript常用方法总结
2015/05/14 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
Python制作简易注册登录系统
2016/12/15 Python
Python制作Windows系统服务
2017/03/25 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
心理咨询专业自荐信
2014/07/07 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
OpenFeign实现远程调用
2022/08/14 Java/Android