数组的定义
创建数组:
1 | var arr = new Array(values); |
判断比是否是个数组
Array.isArray(arr)
arr instanceof Array
增加数组元素
push()
方法 在数组的末尾增加一个或多个元素,并返回数组的新长度。unshift()
方法 在数组的开头增加一个或多个元素,并返回数组的新长度。length
属性
1 | var arr = [1, 2, 3] |
删除数组中的元素
delete
运算符,可以删除数组中的某个元素,但这不会改变length
属性的值.pop()
方法 删除数组的最后一个元素,并返回这个元素shift()
方法 删除数组的第一个元素,并返回这个元素
1 | var arr = [1,2,3]; |
类数组对象
- 在
js
中,有些对象被叫做“类数组对象”(array-like object)
,因为这些对象看起来很像数组,可以使用length
属性,但是无法使用数组的方法。 - 典型的类数组对象是函数的
arguments
对象,以及大多数DOM
元素集,还有字符串
1 | // arguments对象 |
数组的遍历
for…in 循环
1 | var a =[1, 2, 3]; |
- 从上面的输出结果可以看出,利用
for..in
循环会将动态添加的非数字键的值遍历出来,因此需要使用的时候需要注意
for 循环和 while 循环
1 | var a = [1, 2, 3]; |
forEach()方法
1 | //array.forEach(callback[, thisArg]) |
数组常用的方法
join() 将数值转换为字符串
1 | var arr = [1, 2, 3]; |
reverse() 将数组逆序
1 | // 原数组会被修改 |
sort() 数组排序
- 默认情况下是升序排列的,底层是调用了每个数组项的
toString()
方法,然后比较得到字符串,即使每个数组项的数值是数字,比较的也是字符串
1 | // 原数组会被修改 |
slice() 返回部分数组
slice
用于复制数组,复制完后旧数组不变,返回得到的新数组是旧数组的子集- 第一个参数begin是开始复制的位置,需要注意的是,可以设负数。设负数表示从尾往前数几个位置开始复制
1 | //原数组不会被修改 |
splice() 数组拼接
1 | //原数组会被修改 |
isArray() 判断是否是数组
1 | var arr = []; |
indexOf() lastIndexOf() 数组检索
- 两者都用于返回项目的索引值。区别是
indexOf
从头开始找,lastIndexOf
从尾开始找。如果查找失败,无匹配,返回-1
1 | var arr = ['a', 'b', 'c', 'd', 'e']; |