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 相关文章推荐
jquery 图片轮换效果
Jul 29 Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
js的touch事件的实际引用
Oct 13 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
Javascript实现关闭广告效果
2021/01/29 Javascript
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
Python-split()函数实例用法讲解
2020/12/18 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
售后服务经理岗位职责
2014/02/25 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
茶花女读书笔记
2015/06/29 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android