js以对象为索引的关联数组_javascript技巧

关于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

时间: 2024-10-26 01:44:40

js以对象为索引的关联数组_javascript技巧的相关文章

JavaScript 以对象为索引的关联数组_javascript技巧

关于JSON对象,你可以参看wikipedia(http://zh.wikipedia.org/zh-cn/JSON),还有官方网站(http://www.json.org/json-zh.html). 我们常说JavaScript原生支持json,因为我们可以认为json就是对JavaScript的Object对象的灵活应用. 通常我们使用json的方式,主要用作前后台数据交换的格式: 而在代码逻辑中更多的是用关联数组的方式.但即使是这样我们也很少使用对象类型作为键值对的键名. var a=

js获取对象为null的解决方法_javascript技巧

页面上动态输出的数据,这是ajax获取的数据我要在页面上展示 复制代码 代码如下:     success:function(data){          var arr = data.split('_');          var numArr = arr[0].split(",");          var numStr = "";          if(numArr.length==undefined || numArr.length==0){    

js中hash和ico的关联分析_javascript技巧

本文实例分析了js中hash和ico的一些关联.分享给大家供大家参考.具体如下: 近期测试提出一个bug,说某几个页面中的ico不显示,于是针对此问题排查原因. 首先,确保页面中的link已引入favicon.ico.经查看,发现是js中的location.hash导致了ico不显示.原因是在ico未加载完毕时设置了location.hash从而导致ico不显示. location.hash在项目中经常用到,用于url定位,例如http://h.liepin.com/#job-manage中的"

js获取多个tagname的节点数组_javascript技巧

功能需要,写了个获取多个tagname节点集合的小方法.类似于jQuery的$('iput,select,textarea','#form')的效果,返回是按节点在原有文档流中的顺序返回的. 复制代码 代码如下: //获取指定标签类型的节点数组 用例:GetTagNames('input,select,textarea',document.getElementById('form'))function GetTagNames(tagnames,parEl){ //父节点未定义默认循documen

js history对象简单实现返回和前进_javascript技巧

返回和前进用到的是DOM中的history对象: 返回: 复制代码 代码如下: <a href="javascript:history.go(-1)">返回</a> //相当于调用history对象的back()方法: 前进: 复制代码 代码如下: <a href="javascript:history.go(1)">前进</a> //相当于调用history对象的forword()方法:

js 事件对象 鼠标滚轮效果演示说明_javascript技巧

文本框增加/减少值 文本框获得焦点后滚动鼠标滚轮 鼠标滚动缩放图片 鼠标滚动控制滑块移动

大家都应该掌握的PHP关联数组使用技巧_php技巧

在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量,这时候你可以把数据作为元素存储在数组中.数组中的元素都有自己的 ID,因此可以方便地访问它们.关联数组 关联数组,它的每个 ID 键都关联一个值.在存储有关具体命名的值的数据时,使用数值数组不是最好的做法.通过关联数组,我们可以把值作为键,并向它们赋值. 这里介绍10个操作PHP关联数组的技巧,熟练运用能帮助你提高开发效率.1.添加数组元素 PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声

潜说js对象和数组_javascript技巧

复制代码 代码如下: /* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = {}; var obj = {name: 'maxthon'}; var obj = {name: {}, text: []}; /* 可使用 new 操作符 */ var a = new Array(); var d = new Date(); var r = new Re

js基础之DOM中元素对象的属性方法详解_javascript技巧

在 HTML DOM (文档对象模型)中,每个部分都是节点. 节点是DOM结构中最基本的组成单元,每一个HTML标签都是DOM结构的节点. 文档是一个    文档节点 . 所有的HTML元素都是    元素节点 所有 HTML 属性都是    属性节点 文本插入到 HTML 元素是    文本节点 注释是    注释节点. 最基本的节点类型是Node类型,其他所有类型都继承自Node,DOM操作往往是js中开销最大的部分,因而NodeList导致的问题最多.要注意:NodeList是'动态的',