麻烦大家帮我看看下面的js代码有什么问题?

var datas=[];

var datam=[];

for(var i=0;i<dataset.provinces.length;i++)

{

var name= dataset.provinces[i].name;

var value= dataset.provinces[i].value;

datas[name]=value; //例如 datas[北京]=14149

alert(datas.length);
datam.push(value); //datam 数组用于求中间值
}
为什么datas数组的长度为0?赋值不成功,应该如何修改?

数组不能直接datas[name]这种方式,只有对象才行

 var datas=[];改成var datas={};//这么修改后不能datas.length的方式获取值
 需要
 for(var d in datas){
  alert(d+","+datas[d]);
}
 <!DOCTYPE html>
    <head>
        <title>
        </title>
    </head>
    <body>
        <script type="text/javascript">
            var datas=new Object();
            var datam=[];
            var dataset = new Object();
            var i=0;
            var j=0;
            var name,value,k;


            dataset.provinces = new Array();
            dataset.provinces[0] = {
                "name":"北京",
                "value":"14149"
            };
            dataset.provinces[1] = {
                "name":"上海",
                "value":"14150"
            };
            for(;i<dataset.provinces.length;i++)
            {
                name= dataset.provinces[i].name;
                value= dataset.provinces[i].value;              
                datas[name] = value; //例如 datas[北京]=14149               
                datam.push(value); //datam 数组用于求中间值
            }

            for(k in datas){
                j++;
                alert(j);
                alert(k);
                alert(datas[k]);
            }
        </script>
    </body>
</html>

var datas={};

datas是数组类型吧,不能这么用