一.初识数组
数组构成:由一个或多个数组元素组成的,各元素之间使用逗号","分割。
数组元素:每个数组元素由"索引下标"和"值"构成。
根据维数划分为一维数组、二维数组、三维数组等多维数组。
二.创建数组
实例化Array对象的方式
// 元素值类型为字符串
var area = new Array('Beijing', 'Shanghai', 'Shenzhen');
// 元素值类型为数值型
var score = new Array(56, 68, 98, 44);
// 元素值类型为混合型
var mix = new Array(123, 'abc', null, true, undefined);
// 空数组
var arr1 = new Array(); 或var arr2 = new Array;
直接使用" [ ] "的方式
var weather = ['wind', 'fine',]; // 相当于new Array('wind', 'fine',)
var empty = []; // 相当于:new Array
// 控制台输出:["sad", empty × 3, "happy"]
var mood = ['sad', , , ,'happy'];
三.数组的基本操作
获取数组长度
ar arr1 = [78, 88, 98];
var arr2 = ['a', , , , 'b', 'c'];
console.log(arr1.length); // 输出结果为:3
console.log(arr2.length); // 输出结果为:6
数组的访问与遍历
数组元素访问方式:"数组名[下标]"。
利用下标遍历数组:使用for
利用下标遍历数组:使用for...in语句
元素的添加与修改
访问数组中的元素的方式相同
元素的删除
delete关键字只能删除数组中指定下标的元素值,删除后该元素依然会占用一个空的存储位置
varstu= ['Tom', 'Jimmy', 'Lucy'];
console.log(stu );// 输出结果:["Tom", "Jimmy", "Lucy"]
delete stu [1];// 删除数组中第2个元素
console.log(stu );// 输出结果:["Tom", empty, "Lucy"]
四.常见的二维数组操作
创建和遍历
1. // 使用Array对象创建数组
var info = new Array(new Array('Tom', 13, 155), new Array('Lucy', 11, 152));
var arr= new Array(new Array, new Array); // 空二维数组
// 使用"[]"创建数组
varnum= [[1, 3], [2, 4]];
varempty = [[ ], [ ]];// 空二维数组
2. vararr= [ ]; // 创建一维空数组
for(let i = 0; i< 3; ++i){
arr [i] = [ ]; // 将当前元素设置为数组
arr [i][0] = i; // 为二维数组元素赋值
}
注意:若要为二维数组元素(如arr[i][0])赋值,首先要保证添加的元素(如arr[i])已经被创建为数组,否则程序会报"Uncaught TypeError......"错误。
二维数组的转置(案例)
效果:
数组排序
方法:冒泡法,插入排序(数据结构课重点)
常见的数组方法
1.栈和队列方法
利用Array对象提供的栈和队列方法实现数组元素的添加与删除。
注意:push()和unshift()方法的返回值是新数组的长度。
pop()和shift()方法返回的是移出的数组元素。
2.检索方法
在开发中,若要检测给定的值是否是数组,或是查找指定的元素在数组中的位置。
eg .var data = ['peach', 'pear', 26, '26', 'grape'];
// 从数组下标为3的位置开始检索数字26
console.log(data.includes(26, 3)); // 输出结果:false
// 从数组下标为data.length- 3 的位置查找数字26
console.log(data.includes(26, -3)); // 输出结果:true
// 判断变量data是否为数组
console.log(Array.isArray(data)); // 输出结果:true
3.数组转字符串
eg. vararr= ['a','b','c'];
console.log(arr.join()); // 输出结果:a,b,c
console.log(arr.join(' -')); // 输出结果:a-b-c
console.log(arr.toString());// 输出结果:a,b,c
注意:join()和toString()方法的相同点:可将多维数组转为字符串,默认情况下使用逗号连接。
当数组元素为undefined、null或空数组时,对应的元素会被转换为空字符串。
join()和toString()方法的不同点:join()方法可以指定连接数组元素的符号。
4. 其他方法