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 相关文章推荐
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
window.opener用法和用途实例介绍
Aug 19 Javascript
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
javascript清空table表格的方法
May 14 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 Javascript
深入探秘jquery瀑布流的实现
Jan 30 Javascript
Three.js学习之几何形状
Aug 01 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
如何实现双向绑定mvvm的原理实现
May 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 array_flip() 删除数组重复元素
2009/01/14 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
javascript实现添加附件功能的方法
2015/11/18 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python实现的重启关机程序实例
2014/08/21 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
Python实现FM算法解析
2019/06/18 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
在C#中如何实现多态
2014/07/02 面试题
高三语文教学反思
2014/01/15 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
党校学习自我鉴定
2014/02/24 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
支部书记四风对照材料
2014/08/28 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript