首页 > 网站开发 > JavaScript >
-
JavaScript教程之js数组定义和方法 (包含ES5新增数组
数组Array
1. 数组定义
一系列数据的集合成为数组。数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]。
2. 数组创建方式
(1) 字面量方法
1
|
var arr = [1,2,3]; |
(2) 使用构造函数创建
1
2
3
4
5
|
var arr = new Array(); //创建一个空数组[] var arr = new Array(3); //创建一个长度为3的数组(数组项都为undefined) var arr = new Array( '小鸣' ,18, '男' ); //创建数组并写入数组元素 ['小鸣',18,'男'] |
3. 数组操作
(1) 数组元素的查询、写入、修改
通过索引(下标)进行查询、写入和修改操作,索引值从0开始;
①查询:
②写入
③修改
(2) 数组长度 length
length:表示数组的长度,返回数值。
length属性不是只读的,可以通过设置该属性,可以从数组的末尾移除项或添加项。
(3) 数组遍历 (for循环)
格式:for(变量初始化;判断条件;变量更新){执行语句}
1
2
3
4
5
6
7
|
var arr = [ '嘻嘻' , '哈哈' , '呵呵' ]; for ( var i=0;i<arr.length;i++){ console.log(arr[i]); // 分别输出'嘻嘻','哈哈','呵呵' } |
(4) 多维数组(数组包含数组)
1
2
3
|
var arr = [1,2, '哈哈' ,[3,4, '嘻嘻' ],[5,6, '哟哟' ]]; arr[3][2]; //=>'嘻嘻' |
4. 数组方法(增,删,倒序,替换)
- push: 往数组尾部添加一个或多个元素,返回数组新的长度
- pop:删除数组最后一个元素,返回删除的元素
- unshift:往数组开头添加一个或多个元素,返回数组新的长度
- shift:删除数组第一个元素,返回删除的元素
- sort:将数组中的元素排序,并返回排序后的数组,默认以字符串的排列方式(转换成ASCII码进行对比)
- reverse:将数组中的元素颠倒顺序,返回逆序后的数组
- slice(start[,end]):返回数组的片段或子数组,从start开始到end(不包括end所对应的元素),支持负数(负数为从后往前数), 且不会影响原数组。
(如果省略end参数,则截取到数组的最后一项)
-
splice(start,deleteNum,…items):在数组中插入、删除、替换的通用方法,返回删除的元素。
- start:起始索引位置
- deleteNum:要删除的数量
- items:插入的元素(可以是多个)
1.删除 splice(start,deleteNum),返回删除的元素
2.插入 splice(start,deleteNum,...items),返回删除的元素
3.替换 splice(start,deleteNum,...items),返回删除的元素
-
join(separator) 返回字符串值,其中包含了连接到一起的数组的所有元素
- separator:分隔符,默认为逗号
- concat() 返回一个新数组,这个新数组是由调用这个方法的数组和参数组成,参数可以是多个
如果传递给 concat()方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。
如果传递的值不是数组,这些值就会被简单地添加到结果数组的末尾。
例题:多维数组转化成扁平化数组。[1,[2,[[3,4],5],6]] ==> [1,2,3,4,5,6]
5. 值类型与引用类型的区别
[内存中的状态]
简单的了解:
(1) 基本数据类型:存在栈内存里,复制的是值,原数据改变不会影响copy值,反之亦然。
(2) 引用数据类型:存在堆内存里,复制的是引用(类似快捷方式)。原数据改变,会改变 copy值,反之亦然。
6. 数组复制与传输
- 复制数组 ( 数组是引用数据类型 )
① 创建空数组,遍历数组逐个写入;