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

方法一:直接定义并且初始化,这种遇到数量少的情况可以用
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>
(0)

相关推荐

  • JavaScript数据结构之数组的表示方法示例

    本文实例讲述了JavaScript数据结构之数组的表示方法.分享给大家供大家参考,具体如下: 数组类似于线性表.基本上每种语言都会讲数组作为固有类型.这里主要讲一下二维数组.我们可以把二维数组看成这样一个定长线性表:它的每个数据元素也是一个定长的线性表.数组一旦被定义,它的维数和维界就不再改变.因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作(这里注意和JavaScript中的array类型做出区分,这里说的是数据结构,而不是某一种单独语言的语法). 由于数组一般不作插入或者

  • js数组与字符串的相互转换方法

    熟悉js的朋友很多都遇到过js的数组与字符串相互转换的情况,本文就此作一简单介绍,示例如下: 一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二.字符串转数组 实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下: var s = "abc,abcd,aaa"; ss = s.split(","

  • Js数组的操作push,pop,shift,unshift等方法详细介绍

    js中针对数组操作的方法还是比较多的,今天突然想到来总结一下,也算是温故而知新吧.不过不会针对每个方法进行讲解,我只是选择其中的一些来讲. 首先来讲一下push和pop方法,这两个方法只会对数组从尾部进行压入或弹出,而且是在原数组进行操作,任何的改动都是会影响到操作的数组.push(args)可以每次压入多个元素,并返回更新后的数组长度.pop()函数每次只会弹出最后一个结尾的元素,并返回弹出的元素,如果是对空组数调用pop()则返回undefined. 如果参数是数组则是将整个数组当做一个元素

  • javascript数组去重常用方法实例分析

    本文实例讲述了javascript数组去重常用方法.分享给大家供大家参考,具体如下: 数组去除重复值是面试常考内容,也是很容易用到的一个技巧,下面就几种去重的方法进行介绍. 首先是最常见的方法,也就是添加一个临时数组,将原数组遍历,加入临时数组,每次加入时判断待加入的元素是否存在于临时数组中,代码如下: // 对数组进行去重操作,只考虑数组中元素为数字或字符串,返回一个去重后的数组 //第一种方法,遍历,将没有的插入临时数组 function uniqArray1(arr) { var n=[]

  • JavaScript数组实现数据结构中的队列与堆栈

    一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,先被取出! 如下图所示: 二. 在JavaScript中实现队列和堆栈 在JavaScript中实现队列和数组主要是通过数组,js数组中提供了以下几个方法可以让我们很方便实现队列和堆栈: •shift:从数组中把第一个元素删除,并返回这个元素的值. •unshift: 在数组

  • javascript数据结构中栈的应用之符号平衡问题

    本文实例讲述了javascript数据结构中栈的应用之符号平衡问题.分享给大家供大家参考,具体如下: 由于栈先进后出的结构,我们可以将其作为有用的工具,下面就介绍一下栈的应用. 首先是符号的平衡问题.有一串字符串,我们需要判断其中固定的字符是否成对出现,比如<> {} [] () 等.当然实现的方法有很多,但是采用栈的实现会相对更加简单. 实现上述算法的JavaScript代码如下 <!DOCTYPE html> <html> <head> <meta

  • js数组循环遍历数组内所有元素的方法

    例,for(){}遍历数组 复制代码 代码如下: <script type="text/javascript"> <!--var arr = new Array(13.5,3,4,5,6);for(var i=0;i<arr.length;i++){ arr[i] = arr[i]/2.0;}alert(arr); //--> </script> 例,for in循环遍历数组 复制代码 代码如下: <html><body>

  • JavaScript数据结构中栈的应用之表达式求值问题详解

    本文实例讲述了JavaScript数据结构中栈的应用之表达式求值问题.分享给大家供大家参考,具体如下: 下面来谈一个比较经典的表达式求值问题,这个问题主要是设计到操作符的优先级.我们通常看到的表达式都是中缀表达式,存在很多优先级差别,而后缀表达式则没有这些优先级问题.下面先看看两种表达式的区别. 中缀表达式:a*b+c*d-e/f      后缀表达式:ab*cd*+ef/- 从中缀表达式转换到后缀表示式是很难实现的,我们这里可以通过栈的思想来实现.下面进行详细的介绍是什么样的思想: 在对一个中

  • JavaScript队列的应用实例详解【经典数据结构】

    本文实例讲述了JavaScript队列的应用.分享给大家供大家参考,具体如下: 和前面介绍的栈相反,队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端进行删除.JavaScript自己提供了两个队列方法shift和push方法,分别是出队和入队,其原理就是将元素插入数组最后一个和删除第一个元素. 这里需要注意一点,就是unshift方法的效率比push的效率要低很多.因为它要将入队之前的数组全部往前移动一位.这里我们就不用代码再次演示了. 和线性表类似,队列也分为顺序队列和链队列

  • JS简单实现数组去重的方法示例

    本文实例讲述了JS简单实现数组去重的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>JS数组去重</title> <meta http-equiv=&

  • JavaScript数据结构中串的表示与应用实例

    本文实例讲述了JavaScript数据结构中串的表示与应用.分享给大家供大家参考,具体如下: 类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列.下面我们以串联接为例,讲解一下这种存储结构时串的操作.JavaScript自带有concat方法,该方法返回字符串值,该值包含了两个或多个提供的字符串的连接. 其实思路很简单,就是将第二个串拼接在第一个串后面,代码如下 <!DOCTYPE html> <html> <head> <meta chars

  • javascript编程实现栈的方法详解【经典数据结构】

    本文实例讲述了javascript编程实现栈的方法.分享给大家供大家参考,具体如下: 栈是限定仅在表尾进行插入或删除操作的线性表,栈是先进后出的.栈的表尾称为栈顶(top),而表头端称为栈底(bottom). 和线性表类似,栈也有两种存储表示方法,顺序栈和链栈. 这里讲一下顺序栈,设置指针top指示栈顶元素在顺序栈中的位置.通常的做法就是以top=0表示空栈.base为栈底指针,top为栈顶指针. 如果base为null,则表示栈结构不存在,如果top=base则表示空栈.每当插入一个新的元素,

  • javascript数据结构之串的概念与用法分析

    本文实例讲述了javascript数据结构之串的概念与用法.分享给大家供大家参考,具体如下: 串是由零个或多个字符组成的有限序列.串中字符的个数称为串的长度. 串中任意个连续的字符组成的子序列称为该串的子串.包含子串的串相应地称为主串.通常称字符在序列中的序号为该字符在串中的位置.子串的首字符在主串中首次出现的位置定义为子串在主串中的位置. 串的逻辑结构和线性表十分相似,区别仅仅在于串的数据对象约束为字符集.然而两者的基本操作有很大差别.线性表中,基本以单个元素来进行操作:而串中多半以串的整体也

随机推荐