javascript数组定义的几种方法


Posted in Javascript onOctober 06, 2017

1、什么是数组

数组就是一组数据的集合
其表现形式就是内存中的一段连续的内存地址
数组名称其实就是连续内存地址的首地址

2、关于js中的数组特点

数组定义时无需指定数据类型
数组定义时可以无需指定数组长度
数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)

创建数组的语法:

var arr=[值1,值2,值3];                     //隐式创建

var arr=new Array(值1,值2,值3);      //直接实例化

var array=new Array(size);           //创建数组并指定长度

//方法一
var arr1 = [1,3,5,7,9];
document.write(arr1[2] + '<br>');
 
//方法二
var arr2 = new Array(2,4,6,8,10);
document.write(arr2[3] + '<br>');
 
//方法三
var arr3 = new Array(3);//固定数组长度为3
arr3[0] = 1;
arr3[1] = 2;
arr3[2] = 3;
document.write(arr3[2] + '<br>');

JS中符号含义:

()表示函数执行
[]表示语法模拟,表示模拟Array类的实例(=new Array())
{}表示语法模拟,表示模拟Object类的实例(=new Object())
//表示语法模拟(正则对象),表示模拟RegExp类的实例(=new RegExp())

3、关于数组长度

数组对象.length

在js中,每一个数组对象都可以调用length属性,它表示数组对象下共有几个数组元素

示例:

var row = ['zhangsan','lisi','wangwu'];
doucument.write('共有'+row.length+'个人<br>');

var length = row.length;//对数组进行遍历
for (var i=0;i<length;i++){
doucument.write(row[i]+'<br>');
}

4、for...in语句

在js中,数组不是数据类型,数组的数据类型其实就是对象

Js中的For.....in语句可以实现对一个对象的所有属性的遍历

也可以使用for...in语句实现对一个数组的所有元素的遍历

语法:

for( var i in array ){

}

原理:数组中有几个元素,for..in语句就循环执行多少次

每次执行时,将当前数组元素的下标存放到变量i中

var row = ['zhangsan','lisi','wangwu','xiaoqiang'];
for (var i in row){
 document.write(i + ':' + row[i] + '<br>');
}

结果:

0:zhangsan

1:lisi

2:wangwu

3:xiaoqiang

5、文本下标

格式:

arr['key'] = value;

在js中,文本下标的数组元素,不计入数组长度

以文本下标形式添加到数组,实际是以属性形式添加到数组对象中的

var arr = [1,2,3];
arr['first'] = 'zhangsan';
arr['second'] = 'lisi';

document.write(arr.length + '<br>');
document.write(arr.first + '<br>');
document.write(arr.second + '<br>');

结果:

3

zhangsan

lisi

遍历带有文本下标的数组:

var arr = [1,2,3];
arr['first'] = 'zhangsan';
arr['second'] = 'lisi';

for(var i in arr){
 document.write(i + ':' + arr[i] + '<br>');
}

结果:

0:1

1:2

2:3

first:zhangsan

second:lisi

6、多维数组

var arr = [
  [10,'zhangsan','male'],
  [11,'lisi','female'],
  [12,'wangwu','male']
 ];
for (var i in arr){
 for(var j in arr[i]){
  document.write(arr[i][j]);
 }
 document.write('<br>');
}

下面是三水点靠木的补充

1.先定义再赋值

var myArray1 = new Array(); //不定义元素个数
  myArray1[0] = "脚";
  myArray1[1] = "本";
  myArray1[2] = "之";
 myArray1[3] = "家";
var myArray2 = new Array(4); //定义元素的个数
  myArray1[0] = "脚";
  myArray1[1] = "本";
  myArray1[2] = "之";
 myArray1[3] = "家";

 2.定义数组时同时赋值

var myArray3 = new Array("脚","本","之","家");

//你需要在数组内指定数值或者逻辑值,那么变量类型应该是数值变量或者布尔变量,而不是字符变量

3、json格式的定义

var myArray4 = [
   {"num":"1001","name":"jack","age":16},
   {"num":"1002","name":"Mary","age":17},
   {"num":"1003","name":"Tom","age":19}
   ];
//注意中括号和大括号的位置

不懂的同学可以查看这篇文章:https://3water.com/article/20688.htm

Json定义用法和数组的区别

Json:是在javascript用来存数据的一种方法。
Json形式: var Json={a:1 , b:2 , c:3};
数组形式:var arr=[1,2,3];

Json个数组的区别:

1、Json的下标是字符串,如调用第一个数据时用:Json.a 。 数组的下标是数字如 arr[0]
2、Json没有length,数组有lengt

用Json来存数据,如果遇到需要循环需要用 for(元素变量 in 变量名){};因为Json没有length所以要用for in循环,for in循环可以用于Json和数组

for(i in Json){
  语句
};

什么时候用for循环,什么时候用for in循环?
数组:用for循环 for(i=0,i<length,i++){};
Json:用for in循环 for(i in Json){};

 4. 注意

   · 数组只有数组长度一个属性
   · 如果没有给数组赋值得到的是undefined,打印是”“
   · 数组长度不够可以自动扩充,不存在越界的问题

Javascript 相关文章推荐
jQuery 选择器理解
Mar 16 Javascript
jquery提升性能最佳实践小结
Dec 06 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
Nov 19 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
Sep 17 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
Jun 14 Javascript
基于Vue生产环境部署详解
Sep 15 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
Feb 19 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 #Javascript
node.js中http模块和url模块的简单介绍
Oct 06 #Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 #Javascript
vue-cli构建项目使用 less的方法
Oct 04 #Javascript
浅谈Angular2 模块懒加载的方法
Oct 04 #Javascript
浅谈angular2路由预加载策略
Oct 04 #Javascript
浅谈Angular路由复用策略
Oct 04 #Javascript
You might like
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
new修饰符是起什么作用
2015/06/28 面试题
类和结构的区别
2012/08/15 面试题
酒店中秋节活动方案
2014/01/31 职场文书
招股说明书范本
2014/05/06 职场文书
软件售后服务承诺书
2014/05/21 职场文书
党员个人整改措施
2014/10/24 职场文书
分享Python异步爬取知乎热榜
2022/04/12 Python
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android