JavaScript中的数组:使用一个变量来存储多个值,可以存储任意类型的数据。
数组是一种特殊类型的对象,数组使用 数字索引 ,对象使用 命名索引 。
1、基础与应用
创建数组:
var a = new Array(); // 通过new来创建数组对象
a[0] = "dog";
a[1] = "cat";
a[2] = "hen";
a.length; // 3,数组的长度是比数组最大索引值多一的数
var b = ["dog", "cat", "hen"]; // 通过数组字面量来创建数组对象
b.length; // 3
数组的使用:
// 访问一个不存在的数组索引,会得到 undefined
var a = ["dog", "cat", "hen"];
typeof(a[90]); // undefined
// 如果想在数组后追加元素,只需要:
var item = 'john';
a.push(item);
// 检测数据是否是一个数组,还能使用instanceof
Array.isArray(a); // true
// 增加或修改,下标没有越界则为修改,否则为增加
a[1] = 'twj'; // ["dog", "twj", "hen", "john"]
// 将数组中指定下标的元素内容删除,该位置上内容为空,数组长度不变
delete a[1]; // ["dog", null, "hen", "john"]
// 可以通过如下方式遍历一个数组 ==>
for (var i = 0; i < a.length; i++) {
console.log('for..i', a[i]); // i为下标,a[i]为对应的元素
}
// 或使用for..of,更简洁 ==>
for (const currentValue of a) {
console.log('for..of', currentValue); // currentValue为元素
}
// 或使用for..in也可以 ==>
for (var i in a) {
// // i为下标,a[i]为对应的元素,元素为undefined则直接略过
console.log('for..in', a[i]);
}
// 还能使用ES5新增的 foreach 来遍历 ==>
["dog", "cat", "hen"].forEach(function (currentValue, index, array) {
// 操作 currentValue 或者 array[index]
console.log('currentValue', currentValue);
console.log('array[index]', array[index]);
});
/* 升序排序,sort()
对数组中的元素进行(ASCII码的升序)排序;
如果要改变成数值类型排序,则需要在`sort()`函数的参数中增加一个排序比较函数
*/
a.sort();
a.sort(function (a,b){
return a - b; // a-b为升序,b-a为降序
})
// 降序排序,reverse()
a.reverse();
2、数组的常用方法
方法名称 | 描述 |
---|---|
push() | 在尾部插入新项 |
pop() | 删除数组的最后一项 |
unshift() | 在头部插入新项 |
shift() | 删除数组的第一项 |
splice() | 用于添加或删除数组的元素 |
slice() | 从已有的数组中返回选定的元素 |
concat() | 合并多个数组 |
reverse() | 颠倒数组中元素的顺序 |
indexOf() | 返回指定元素的索引值,如果不存在返回-1 |
includes() | 判断一个数组是否包含指定的值,返回布尔值 |
sort() | 用于数组排序 |
join() | 将数组转成字符串 |
3、二维数组
//JavaScript中的二维数组,与Java中的类似,每一行中元素的数量可以不相同
let 数组名 = new Array(new Array(),new Array(),...,new Array());
let 数组名 = [[],[],[],...,[]];
上一篇文章 | 下一篇文章 |
---|---|
JavaScript函数(四) | JavaScript对象详解(六) |