问题描述
- 麻烦大家帮我看看下面的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是数组类型吧,不能这么用
时间: 2024-11-01 21:25:05