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 Validation插件防止重复提交表单的解决方法
Mar 05 Javascript
JQuery与JSon实现的无刷新分页代码
Sep 13 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
原生js实现移动端瀑布流式代码示例
Dec 18 Javascript
JS实现简单易用的手机端浮动窗口显示效果
Sep 07 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
JavaScript表单验证实现代码
May 22 Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
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
博士208HAF收音机实习报告
2021/03/02 无线电
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
json的使用小结
2016/06/08 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
详解vue 组件注册
2020/11/20 Vue.js
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
乌克兰在线药房:Аптека24
2019/10/30 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
销售代理协议书
2014/09/30 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
公司停电通知
2015/04/15 职场文书
员工福利申请报告
2015/05/15 职场文书
公司职员入党自传书
2015/06/26 职场文书
清明扫墓感想
2015/08/11 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python