A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海亮 中级黑马   /  2012-8-21 13:16  /  1772 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

var list=new array();
list['北京市']=['东城区','西城区','海淀区','朝阳区','大兴区'];
list['河北省']=['石家庄','邯郸市','邢台市','保定市','廊坊市'];
list['内蒙古']=['呼市','包头市','赤峰市','鄂尔多斯','东胜'];
在javascript脚本当中这样定义数组,我认为是没有错误的我认为是合理的,但是这个数组不能使用为什么,大家帮我看看哪里有问题?

8 个回复

倒序浏览
js不是很熟,但是就java的角度来说这个是个2维数组,2维数组var list=new array()这样创建没有问题吗。。。
回复 使用道具 举报
胡进辉 发表于 2012-8-21 13:30
js不是很熟,但是就java的角度来说这个是个2维数组,2维数组var list=new array()这样创建没有问题吗。。。 ...

javascript 是 螺类型  它只有var   不能像java那样int[] arr=new int[1]; 定义数组
回复 使用道具 举报
<script type="text/javascript">

var list= [['石家庄','邯郸市','邢台市','保定市','廊坊市'],['呼市','包头市','赤峰市','鄂尔多斯','东胜']];
//list[0][0] 就是石家庄
</script>
回复 使用道具 举报
杨鹏鹏 发表于 2012-8-21 13:39
var list= [['石家庄','邯郸市','邢台市','保定市','廊坊市'],['呼市','包头市','赤峰市','鄂尔多斯','东 ...

你根本不了解我的意图“list['河北省']=['石家庄','邯郸市','邢台市','保定市','廊坊市'];” 你那种写法跟我的思路不符,根本就是两回事!
回复 使用道具 举报
list['河北省']=['石家庄','邯郸市','邢台市','保定市','廊坊市'];   问题是你这个写法就是错误的
回复 使用道具 举报
本帖最后由 吴小东 于 2012-8-21 23:00 编辑

数组创建的方式 无非就是两种大类,
第一种就是利用 Array()的构造函数,这个构造函数有几种
1.  var  arr = new Array();
2.  var arr = new Array(3); //对数组长度用参数传入
3.  var arr = new Array(){1,'A','B'} //直接对数组元素进行赋值
第二种就是数组的直接量赋值,用方括号的方式,
var arr = [1,'a','b'];  一维数组
var arr = [[1,'a'],[2,'b']]; 二维数组

之前你的帖子我就给你了一个例子了
这是之前我给你回帖所写的数组表现形式
   var list = new Array("北京市","河北省","内蒙古");
   var listBeiJing = ['东城区','西城区','海淀区','朝阳区','大兴区'];
   var listHeBei = ['石家庄','邯郸市','邢台市','保定市','廊坊市'];
   var listNeiMeng = ['呼市','包头市','赤峰市','鄂尔多斯','东胜'];
   var list1 = new Array();   //把前面4个list 合并为一个 list1
   list1 = {北京市:listBeiJing,河北省:listHeBei,内蒙古:listNeiMeng}

在读取的时候用char 类型定义下标的话,原来数组都需要标记下标
  list1[北京市] 是等于 listBeiJing; 这是因为在list1中做了标记
回复 使用道具 举报
吴小东 发表于 2012-8-21 22:24
list['河北省']=['石家庄','邯郸市','邢台市','保定市','廊坊市'];   问题是你这个写法就是错误的
...

问题是我照着书上写的
回复 使用道具 举报
数组下标必须是一个非负的整数,如果说是用其他形式来定义的话,javascript会把它转换成字符串作为对象属性的名字,而不是定义了一个新的数组下标。
比如 var arr = new Array();  arr['a'] = "abc";   这句话个人理解相当于为 arr数组定义了一个属性 a 对于的值为 abc
  alert(arr.length);  这个是等于 0 的;就算你是手动的设置 数组的长度也是没有用的
arr.length =1; 手动设置数组长度为1
  alert(arr[0]); 显示是 unfind
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马