【原创】JavaScript中一维/多维数组(三)二维数组的定义及赋值

标签:
js二维数组二维数组定义二维数组赋值数组真实长度获取杂谈 |
分类: JavaScript-HTML前台 |
争取每日一篇的产出量奉献给大家!!
上面这两个图分别表示了数组A及其中的元素A1~A5,还有数组B及其元素B1~B5
上一篇我们讲到【原创】JavaScript中一维/多维数组(二)一维数组的一些方法汇总以及相关问题的补充,以及上上篇讲到的【原创】JavaScript中一维/多维数组(一)
一维数组的定义以及增加删除元素 ,这些JS数组的基本用法相信大家都已经熟悉啦,那么这次我们真的要搞出点儿事情弄出真格的了!!!http://www/uc/myshow/blog/misc/gif/E___6698EN00SIGG.gif
【超级进阶】二维数组的定义
http://www/uc/myshow/blog/misc/gif/E___6701EN00SIGG.gif何为二维数组咧?拿一张图让大家弄个明白
看到这里估计有观众老爷不乐意了,“Kao!我们要的是如何var出二维数组!!不是听你在这儿BB概念!!Blabla”,额。。这个这个。。http://www/uc/myshow/blog/misc/gif/E___7398ZH00SIGG.gif
这个图应该就看得清楚很多了,我们慢慢讲,讲细点儿哈,已经清楚了的可以猛戳上方链接skip掉哈~
首先分别是A所在的那横排和B所在的那纵列,就是下图http://www/uc/myshow/blog/misc/gif/E___6713EN00SIGG.gif
上面这两个图分别表示了数组A及其中的元素A1~A5,还有数组B及其元素B1~B5
可以通过点线面来让大家理解一下,我们的数据可以看作是点,一维数组就是将这些个数据(也就是点)穿起来,形成一维数组(也就是线),然后多个一维数组这么组合起来,就形成了多维数组(这个就是面啦),这样大家应该就很清楚了哈~
好啦~高玩老爷们赶紧回来吧。。小的我还靠你们多多关注呢。。。http://www/uc/myshow/blog/misc/gif/E___7394ZH00SIGG.gif
我们现在讲讲定义的方法
方法一:直接扩展二维数组
var twoArray = new Array();
twoArray[0] = new Array();//
数组index=0之中又new一个数组
twoArray[1] = new Array();//
数组index=1之中又new一个数组
// 构建twoArray[0]数组
twoArray[0][0] = "aa";
twoArray[0][1] =
"ba";
twoArray[0][3] =
"ca";
// 构建twoArray[1]数组
twoArray[1][0] =
"acca";
twoArray[1][1] = "bada";
twoArray[1][3] = "cdasa";
OK!这样一个二维数组就搭建完毕啦~这个方法适用形象的创建简单的数组,当然还有更简单的创建方式
方法二:最简单的直接创建二维数组
var twoArray =
[["A0B0","A0B1"],["A1B0","A1B1"],["A2B0","A2B1"]];
就这样。。。在数组的格式中再在元素的位置上写数组格式作为元素,就OK啦~这个方式适合创建超级简单的二维数组,一般都是demo的啦~http://www/uc/myshow/blog/misc/gif/E___6701EN00SIGG.gif
方法三:循环遍历创建二维数组
var twoArray = new Array();
for(var i = 0; i < firstIndex; i++){
twoArray[i] = new
Array();
for(var j = 0; j
< lastIndex; j++){
twoArray[i][j] =
"database blabla";
}
}
这样就搞掂啦,适合大量的数据尤其是获取Json数据之类的时候常用,但是要注意!这时候如果你使用twoArray.length来获取数量的时候,有时候无法获取到准确值,甚至直接都是0!!这个我后面会讲到,请大家耐心看下去哈~谢谢啦~http://www/uc/myshow/blog/misc/gif/E___6707EN00SIGG.gif
言归正传,这种方式同样的是最最适合创建多维数组的方法
【真·超级进阶】多维数组的定义
var nArray = new
Array();
for(var i = 0; i <
firstIndex; i++){
nArray[i] = new Array();
for(var j = 0; j < secondIndex;
j++){
nArray[i][j] = new Array();
....for(var nnn = 0; nnn < lastIndex;
nnn++){
nArray[i][j]....[nnn] = "database
blala";
}
}
}
这个。。。多维数组基本都是这么创建的。。。一般。。。三维都很少见了的吧。。。这个就当是扩展的好啦http://www/uc/myshow/blog/misc/gif/E___6690EN00SIGG.gif
【反奥义·回归常规进阶】二维数组
好啦~回来,重点还是在二维数组上哈~
其实呢,二维数组的方法和一维数组一样的,毕竟都是Array类型的嘛,因此就没有什么好讲的啦,下面就是解决个问题,数组的Length不能获取其值。http://www/uc/myshow/blog/misc/gif/E___6696EN00SIGG.gif
解决方案很简单,因为遍历常规方法均是通过索引Index遍历基本都是整型的遍历,若是存在其它的字符键值对形式录入,则会有将整数作为字符形式,将其作为键值对保存下来,如此讲无法获取准确的Length。故而通过遍历所有项的形式即可,看着!
// 获取Array数组真实长度
function getLength(arr){
var count = 0;
for(item in arr){
count ++;
}
return count;
}
这个同样适用于二维甚至多维数组,当然啦,越多维的数组那效率就越低,这是必然的,如果找到神马更好的方法,大家可以留言交流交流,共同进步!http://www/uc/myshow/blog/misc/gif/E___7414ZH00SIGG.gif
截止到现在,【JavaScript中一维/多维数组】系列三篇文章结束一段落啦,如果以后我还碰到什么会继续更新补充的,谢谢大家的支持,接下来将会继续写出我最近碰到的各个问题的相关知识,有什么建议或者想看什么内容的,记得留言给我哈!再次谢谢大家的帮助和鼓励!http://www/uc/myshow/blog/misc/gif/E___6721EN00SIGG.gif