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对文字按照拼音排序实现代码
Dec 27 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
jquery+Jscex打造游戏力度条
Sep 12 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 Javascript
基于ionic实现下拉刷新功能
May 10 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
详解Typescript里的This的使用方法
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
php中处理模拟rewrite 效果
2006/12/09 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
PyQt5 多窗口连接实例
2019/06/19 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
软件测试工程师结构化面试题库
2016/11/23 面试题
工作鉴定评语
2014/05/04 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
认真学习保证书
2015/02/26 职场文书
纪委立案决定书
2015/06/24 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
JavaScript组合继承详解
2021/11/07 Javascript