日期:2014-05-16  浏览次数:20598 次

字典之遍历
第一种声明:(对象式)
JScript code
var menuHead = { "standard_": "标准", "style_": "样式", "code_": "代码"};

缺点:
  当它的key相同是无法增加!
   
优点:
  编历easy!
JScript code
for(var key in menuHead )
{
    var value=  menuHead[key];
    alert(key+":"+value);
}


第二种声明:(数组 括对象式)
JScript code
var strs =[{"1":2},{"1":4},{"2":2},{"2":4}];
strs.push({"mm","very beautiful"});//还可以这样加


缺点:
 编历非常难!
JScript code

for(var key in strs)
{
    for(var k in strs[key])
    {
        value = strs[key][k];
        alert(k+":"+value);//读取key: value:
    }
}

   
优点:
  当它的key相同 一样可以增加!


第三种声明:(数组 括对象[多元素]式)
JScript code
var strs =[{"key":1,"value",1},{"key":2,"value",20}];

优点:
  编历easy!
JScript code
for(var key in strs)
{
    var value = strs[key]["value"];
    var k= strs[key]["key"];
    alert(k+":"+value);//读取key: value:
}

缺点:
 内存大,速度慢一倍!

以上三种,都不太理想,
 求更好!

------解决方案--------------------
既然是字典,key就应该无重复啊!

看看 hashtable之类的 key 都不允许重复啊。
------解决方案--------------------
第一种可以变通下
var menuHead = { "standard_": "标准", "style_": "样式", "code_": "代码"};
可以在key后面加个自增编号,如var menuHead = { "standard_1": "标准", "style_2": "样式", "code_3": "代码","code_4": "代码"};
在遍历的时候把那个编号去掉不就可以了
一句话"变则通"