加载中…
个人资料
o0DarkneSS0o
o0DarkneSS0o
  • 博客等级:
  • 博客积分:0
  • 博客访问:407
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2016-06-03 10:51:53)
标签:

js二维数组

二维数组定义

二维数组赋值

数组真实长度获取

杂谈

分类: JavaScript-HTML前台
争取每日一篇的产出量奉献给大家!!

上一篇我们讲到【原创】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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有