js二维数组定义和初始化的三种方法总结


Posted in Javascript onMarch 03, 2014

方法一:直接定义并且初始化,这种遇到数量少的情况可以用

var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]

方法二:未知长度的二维数组

var tArray = new Array(); //先声明一维
for(var k=0;k<i;k++){ //一维长度为i,i为变量,可以根据实际情况改变
tArray[k]=new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
for(var j=0;j<p;j++){ //一维数组里面每个元素数组可以包含的数量p,p也是一个变量;
tArray[k][j]=""; //这里将变量初始化,我这边统一初始化为空,后面在用所需的值覆盖里面的值
 }
}

给定义的数组传入所需的值
tArray[6][1]=5;//这样就可以将5的值传入到数组中,覆盖初始化的空

方法三:在这之前,以上两者方法都有问题,方法二,每次定义都初始化了,虽然后面可以动态修改,但是还是不方法

所以我尝试了一种动态传入值到数组的方法

ps:一些在实践过程中遇到的数组有趣的现象

本来以为二维数组可以像下面这样直接传入值

for(var a=0;a<i;a++){
tArray[a]=(matArray[a],addArray[a]); //matArray[a]和addArray[a]是两个数组,这两个数组直接传入tArray[a]中

};

结果是tArray[a]中收到的是后面一个数组的值,matArray[a]的内容被忽略的,如果换一个位置,matArray[a]在后面,则传入的是addArray[a]的值。

思考:简单的例子:

var a=[1,2];
var b=[];
b[0]=a;//把数组a作为b数组的元素传入b数组中
alert(b[0][1]); //2

上面是最简单的二维数组,

上面例子换种写法:

var b=[];
b[0]=[1,2];//把数组[1,2]作为b数组的元素传入b数组中
alert(b[0][1]); //2

可以看出上面的b[0]=[1,2]是可以用的

for(var a=0;a<i;a++){
tArray[a]=[ matArray[a],addArray[a] ]; 上面例子中的()修改为[] 就可以成功的组成一个二维数组了
};

总结:方法三:

for(var a=0;a<i;a++){
tArray[a]=[ aArray[a],bArray[a],cArray[a]]; 还可以增加dArray[a],eArray[a]
};

这种情况适用于已知几个数组,把他们组合成一个二维数组情况

JS 创建多维数组

<script>
 var allarray=new Array();
 var res="";
 function loaddata()
 {
 for(var i=0;i<3;i++)
 {
 var starth=i*200;
 var strarw=i*200;
 var endh=(i+1)*200;
 var endw=(i+1)*200;
 allarray[i]=new Array();
 allarray[i][0]=new Array();
 allarray[i][1]=new Array();
 allarray[i][0][0]=starth;
 allarray[i][0][1]=strarw;
 allarray[i][1][0]=endh;
 allarray[i][1][1]=endw;
 }
 for(var i=0;i<allarray.length;i++)
 {
 var sh=allarray[i][0][0];
 var sw=allarray[i][0][1]
  var eh=allarray[i][1][0];
 var ew=allarray[i][1][1]
 res+="第"+i+"个坐标的开始坐标是:"+sh+","+sw+"结束坐标是:"+eh+","+ew+"<br/>";
 }
 document.getElementById("dv").innerHTML=res;
 }
</script>

补充资料:

这两天做项目时,要通过js传递一个带有字符串键名的二维数组,可是传递到后台,却得到了false,使用了很多种方法都不行,今天特地来介绍一下:js 数组初始化问题;

以及Ajax下传递带有字符串键名的数组如何操作

一维数组:

一维数组可以使用数字,字符串做建名。

var data = [];//不知道个数
var data = new Array(); //不知道个数

如果知道个数,具体数值可以用:

var data = new Array(1);
data['a'] = 'a';

或者

var data= ['a'];

二维数组:

二维数组不支持字符串键名。

一:

var data = [];
data.push(['a']);

var data_1 = ['a'];d
ata[0]=data_1;

二:

var data=new Array();
for(var i=0;i<2;i++){
data[i]=new Array(); 
for(var j=0;j<2;j++){
data[i][j]=1;
}

提醒:

在使用Ajax传递数据时,js数组必须是数字键名。

如果要使用字符串做建名,要通过对象的形式:如下:

var data ={
'a':{'id':1,'url':h}
};

这篇文章介绍这了。

JS 二维数组的定义及长度判断

动态定义二维数组:

1.先定义一维:

var arr = new Array();

2.定义二维:

arr[0] = new Array();

arr[1] = new Array();

3.给数组赋值:

arr[0][0] = "00";

arr[0][1] = "01";

arr[1][0] = "10";

arr[1][1] = "11";

4.判断数组长度:

二维数组的行数:arr.length

相应行的列数:arr[0].length //第一行的长度 以上例来算此值为2

5.数组的调用:

很简单:var str = arr[0][0];

Javascript 相关文章推荐
彪哥1.1(智能表格)提供下载
Sep 07 Javascript
模仿jQuery each函数的链式调用
Jul 22 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
js href的用法
May 13 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
Jul 04 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
Angular 2.0+ 的数据绑定的实现示例
Aug 09 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
JS二维数组的定义说明
Mar 03 #Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 #Javascript
js之ActiveX控件使用说明 new ActiveXObject()
Mar 03 #Javascript
JS中的log对象获取以及debug的写法介绍
Mar 03 #Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 #Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 #Javascript
jquery实现弹出层完美居中效果
Mar 03 #Javascript
You might like
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python pygame模块编写飞机大战
2018/11/20 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
违纪检讨书2000字
2014/02/08 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
自动化专业毕业生求职信
2014/06/18 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL