数据结构--数组

数组是最简单的内存数据结构。数组存储一系列同一种数据类型的值。但在JavaScript里,也可以在数组中存储不用类型的值。但最好不这么做。

创建数组

1
2
3
4
5
6
7
8
9
var arr1 = new Array(); // 简单声明并初始化一个数组
var arr2 = new Array(7); // 传入一个数字,指定数组长度
var arr3 = []; // 用数组字面量创建一个空数组
var arr4 = ['a', 'b', 'c']; // 使用一些元素创建数组
console.log(arr4.length); // 使用length属性输出数组长度,长度从0开始计算,最后一元素是arr4[arr4.length-1]
console.log(arr4[1]); // 使用中括号传入数字,可以得到固定位置的数组元素
for(let i = 0; i < arr4.length; i++){ // 使用for循环遍历数组
console.log(arr4[i]);
}

添加和删除数组

1
2
3
4
5
6
7
8
9
var arr = ['a', 'b', 'c'];
arr[arr.length] = 'd'; // 只要把元素赋值给数组最后一个空位就行
arr.push('e', 'f'); // 数组提供的方法,可以方便的添加任意多个元素到数组末尾
arr.unshift(-1, 0); // 数组提供的方法,可以在数组开始处添加元素
var f = arr.pop(); // 删除数组最后的元素,并返回删除的元素
var num = arr.shift(); // 删除数组开头的元素,并返回删除的元素
var arrDel = arr.splice(3, 2); // 删除数组索引3开始的2个元素,并返回删除的元素(从特定位置删除元素)
arr.splice(1, 0, 1, 2); // 在数组索引1开始的位置添加2个元素,分别是1, 2(从特定位置添加元素)
var arrDel2 = arr.splice(0, 1, 9); // 在数组索引0开始删除1个元素,并再添加一个元素9,返回被删元素(删除并再添加元素)

二维数组和多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var arr = [];
arr[0] = [];
arr[0][0] = '00';
arr[0][1] = '01';
arr[0][2] = '02';
arr[1] = [];
arr[1][0] = '10';
arr[1][1] = '11';
arr[1][2] = '12';
// 遍历二维数组
for (let i = 0; i < arr.length; i++) {
for(let y = 0; y < arr[i].length; y++){
console.log(arr[i][y]);
}
}

JavaScript数组方法参数

方法名 描述
cancat 连接2个或多个数组并返回结果
every 对数组每一项运行给定函数,如果函数对每一项都返回true,则返回true
filter 对数组每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach 对数组每一项运行给定函数。没有返回值
join 将所有数组元素拼接成一个字符串
indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到返回-1
lastIndexOf 返回最后一个与给定参数相等的数组元素的索引,没有找到返回-1
map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse 颠倒数组元素的顺序
slice 传入索引值,将数组里对应索引返回内的元素做为新数组返回
some 对数组每一项运行给定函数,如果任意一项返回true,则返回true
sort 按照字母顺序排序,支持传入指定排序方法的函数作为参数
toString 将数组作为字符串返回
valueOf 和toString类型,将数组作为字符串返回