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 相关文章推荐
解析window.open的使用方法总结
Jun 19 Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
Vue.js每天必学之指令系统与自定义指令
Sep 07 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
Dec 07 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
Dec 03 Javascript
React Hooks 实现和由来以及解决的问题详解
Jan 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使用百度天气接口示例
2014/04/22 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
python实现哈希表
2014/02/07 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
文明学生标兵事迹
2014/01/21 职场文书
保护环境倡议书范文
2014/05/13 职场文书
文案策划专业自荐信
2014/07/07 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
摩登时代观后感
2015/06/03 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书