您的位置:首页 > Web前端 > JavaScript

javascript关联数组

2012-07-13 19:11 281 查看
在javascript中,数组就是对象。因而对数组的存取除了熟悉的整形数字下标法之外,还能用采用对象式的存取方法,即关联数组用法。

直接看例子:

//array的类型
var arr=[]; arr.name="caochao"; console.log(typeof arr); //object

//类似于hashtable key->value形式,与php中关联数组用法几乎一样
var arr=[]; arr["name"]="caochao"; console.log(arr["name"]); //caochao

var arr=[]; arr["name"]=["caochao","lsl","wy"]; console.log(arr.name);  //["caochao", "lsl", "wy"]

//之前的赋值会被之后的赋值覆盖

var arr=[]; arr["name"]="caochao"; arr["name"]="lsl"; console.log(arr["name"]); //lsl

//像对象一样赋值
var arr=[]; arr.name="caochao"; console.log(arr["name"]); //caochao;
var arr=[]; arr.name="caochao"; console.log(arr.name); //caochao;
var arr=[]; arr.name="caochao"; arr.name="lsl"; console.log(arr.name); //lsl

//chrome中测试结果



但需要注意的是,采用这种赋值方式数组本身是空的,必须用字符串下标或点式法存取赋与数组的值:
var arr=[]; arr["name"]="caochao"; console.log(arr); //[]
var arr=[]; arr.name="caochao"; console.log(arr); //[]



文章最后,为大家奉献上一个javascript版的dictionary实现:

function Dictionary(){
this.buffer=[];
}
Dictionary.prototype={
get:function(key){
if(this.contain(key)){
return this.buffer[key];
}else{
return null;
}
},
add:function(key,value){
if(!this.contain(key)){
this.buffer[key]=value;
}
},
remove:function(key){
if(this.contain(key)){
this.buffer[key]=undefined;
}
},
getKeys:function(){
var r=[];
for(var k in this.buffer){
r.push(k);
}
return r;
},
getValues:function(){
var r=[];
for(var k in this.buffer){
r.push(this.get(k));
}
return r;
},
contain:function(key){
return (typeof this.buffer[key]!='undefined');
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: