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 addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
Javascript变量作用域详解
Dec 06 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
Dec 20 Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 Javascript
AngularJS 作用域详解及示例代码
Aug 17 Javascript
JS禁止查看网页源代码的实现方法
Oct 12 Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
在Docker上开始部署Python应用的教程
2015/04/17 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
C语言面试题
2013/05/19 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
学校对教师的评语
2014/04/28 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
2019同学聚会主持词
2019/05/06 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
关于python中模块和重载的问题
2021/11/02 Python