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中面向对象技术的模拟
Sep 25 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
JS实现标签页切换效果
May 04 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
Vue.js进阶知识点总结
Apr 01 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 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模板类代码
2008/09/07 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
python list转dict示例分享
2014/01/28 Python
Python实现提取文章摘要的方法
2015/04/21 Python
python妙用之编码的转换详解
2017/04/21 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
PyQt5每天必学之组合框
2018/04/20 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
Django多个app urls配置代码实例
2020/11/26 Python
教你怎样写好自我评价
2013/10/05 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
小学语文教学反思
2014/02/10 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
物理课外活动总结
2014/08/27 职场文书
购房个人委托书范本
2014/10/11 职场文书
实习班主任自我评价
2015/03/11 职场文书
运动会通讯稿100字
2015/07/20 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android