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中yield实用简洁实现方式
Jun 12 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
May 12 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 Javascript
Angular工具方法学习
Dec 26 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
vue实现弹幕功能
Oct 25 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 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
神族 PROTOSS 概述
2020/03/14 星际争霸
收音机指标测试方法及仪器
2021/03/01 无线电
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
php强制运行广告的方法
2014/12/01 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP实现搜索相似图片
2015/09/22 PHP
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
简单实现js浮动框
2016/12/13 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
Python的randrange()方法使用教程
2015/05/15 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
关于VPN
2012/06/10 面试题
高级护理专业大学生求职信
2013/10/24 职场文书
合伙经营协议书
2014/04/18 职场文书
医德医风演讲稿
2014/05/20 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
react国际化react-intl的使用
2021/05/06 Javascript
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
python实现简单聊天功能
2021/07/07 Python
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸