.Net下大家肯定都用过Hashtable,其实js也是支持的,用数组就可以了,可能很多人没有用过:
var t = new Array();
t["a"] = "A";
t["b"] = "B";
t["c"] = "C";
t["d"] = "D";
delete t["d"];
for(var k in t)
{
alert("key:" + k + ", value:" + t[k] );
}
1楼 【求助】问个不知道是不是hashtable的问题
<script>
//----------------方法一
var Info=
{
Email: "a"
}
alert(Info["Email"])
alert(Info.Email)
//---------------方法二
var Info= new Array()
Info["Email"]="a"
alert(Info["Email"])
alert(Info.Email)
</script>
上面这两种方法似乎很相似...
不知道他们是不是同是Array对象...???
另..有朋友说第一种方法,也就是
var Info=
{
Email: "a"
}
等价于
var Info= function()
{
this.Email= "a"
}
但是这样alert(Info["Email"]) 得不到Email的值...
各位高人..给个提示...
问题一:
var Info=
{
Email: "a"
}
到底等价于什么?
问题二:方法一和方法二是一个对象么?
2楼
var Info={Email: "a"} 等价于 var Info = new Object(); Info.Email = "a"
方法1跟方法2不是一个对象,1是Object,2是Array
3楼
那为什么var Info={Email: "a"} 可以alert(Info["Email"])?
而 var Info = new Object(); Info.Email = "a" 不能. alert(Info["Email"]); <script> //----------------方法一 var Info=new Object() Info.Email="aa" alert(Info["Email"]) alert(Info.Email)
//---------------方法二 var Info= new Array() Info["Email"]="a" alert(Info["Email"]) alert(Info.Email) </script> 5楼 <script> var obj = new Object(); obj["name"] = "value"; alert(obj["name"] ) </script> 这样又行....实在是晕.... 6楼
7楼这样当然行啊,因为如果obj是Object的话obj['name']=obj.name 哦.....我知道了.....是我写的那个obj没有被实例化 var Info= function() { this.Email= "a" }
alert(new Info()["Email"]) 9楼 呵呵,<SCRIPT LANGUAGE="JavaScript"> <!-- var t = new Object(); t["a"] = "A"; t["b"] = "B"; t["c"] = "C"; t["d"] = "D";
delete t["d"];
for(var k in t) { alert("key:" + k + ", value:" + t.k ); }
//--> </SCRIPT> 为什么上面的t.k就不可以? 而单独的t.a t.b t.c就可以,不知道什么原因?
12楼
alert("key:" + k + ", value:" + t[k] );
哈哈..你没有理解哇... 我理解你var Info= { Email: "a" } 等价于 var Info= function() { this.Email= "a" } 了,只是不理解t.k为什么不可以? 你的签名怎么老变?为什么用for in 的时候t.k会是undefined?
15楼
我不知道怎么说了..呵...你再好好看看..应该看得懂的. <SCRIPT LANGUAGE="JavaScript"> <!-- var t = new Object(); t["a"] = "A"; t["b"] = "B"; t["c"] = "C"; t["d"] = "D"; delete t["d"]; alert(t.a);alert(t.b);alert(t.c);alert(t.d); for(var k in t) { alert("key:" + k + ", value:" + t.k ); } //--> </SCRIPT>
17楼
t.a t.b 是直接引用.. 跟以 document.all.a 等价于 document.all("a") 如果是一个变量就是 var b="a" document.all(b) 18楼
t.k变成t."a"这样了,我知道了 thx |
|
|
|
posted on 2006-03-20 23:29
汪杰 阅读(417)
评论(0) 编辑 收藏 引用 所属分类:
javascript