数组
数组
数组(Array)是一种用于存储多个值的有序集合。数组允许你按索引访问其元素,并提供了许多内置的方法来操作数组中的数据。
数组创建
可以通过数组字面量来创建数组
//创建数组
let a = [1, 2, 3];
属性和方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
length | 属性 | int | 获取字符串长度 | |
join | 方法 | separator?:string | string | 将数组的所有元素连接成一个字符串 |
push | 方法 | element: any | any[] | 向数组末尾添加一个元素 |
pop | 方法 | any[] | 移除并返回数组末尾的元素 | |
shift | 方法 | any[] | 移除并返回数组头部的元素 | |
unshift | 方法 | element: any | any[] | 向数组头部添加一个元素 |
slice | 方法 | start: int, end: int | any[] | 截取数组的子数组 |
splice | 方法 | start: int, deleteCount: int, items: ...any | any[] | 从数组中删除或添加元素 |
indexOf | 方法 | element: any | int | 返回数组中第一次出现元素的索引 |
lastIndexOf | 方法 | element: any | int | 返回数组中最后一次出现元素的索引 |
filter | 方法 | predicate: Function | any[] | 过滤数组中的元素 |
sort | 方法 | compareFn?:(a:any,b:any) => boolean | any[] | 对数组进行排序 |
map | 方法 | callback: Function | any[] | 映射数组中的元素 |
copy | 方法 | dest: array | any[] | 复制数组中的元素到另一个数组 |
delete | 方法 | index: int | any[] | 删除数组中指定索引的元素 |
includes | 方法 | element: any | boolean | 检查数组是否包含指定元素 |
reverse | 方法 | any[] | 反转数组中的元素 | |
unique | 方法 | any[] | 移除数组中的重复元素 |
length
返回数组的长度。
示例
let arr = [1, 2, 3];
console.log(arr.length); // 输出: 3
join
将数组的所有元素连接成一个字符串。
示例
// 使用逗号连接
let result = ["a", "b", "c"].join(",");
console.log(result); // 输出: "a,b,c"
// 分隔符默认为,
result = ["a", "b", "c"].join();
console.log(result); // 输出: "a,b,c"
push
向数组末尾添加一个元素。
示例
let arr = [1, 2, 3];
let length = arr.push(4);
console.log(length); // 输出(返回新的数组长度): 4
console.log(arr); // 输出: [1, 2, 3, 4]
pop
移除并返回数组末尾的元素。
示例
let arr = [1, 2, 3];
arr.pop(arr);
console.log(arr); // 输出: [1,2]
shift
移除并返回数组头部的元素。
示例
let arr = [1, 2, 3];
arr.shift();
console.log(arr); // 输出: [2,3]
unshift
向数组头部添加一个元素。
示例
let arr = [1, 2, 3];
let length = arr.unshift(0);
console.log(length); // 输出(返回新的数组长度): 4
console.log(arr); // 输出: [0, 1, 2, 3]
slice
截取数组的子数组。
示例
let arr = [1, 2, 3, 4, 5];
let result = arr.slice(1, 3);
console.log(result); // 输出: [2, 3]
splice
从数组中删除或添加元素。
示例
let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2, 6, 7);
console.log(arr); // 输出: [1, 6, 7, 4, 5]
indexOf
返回数组中第一次出现元素的索引。
示例
let arr = [1, 2, 3, 2, 1];
let index = arr.indexOf(2);
console.log(index); // 输出: 1
index = arr.indexOf(4);
console.log(index); // 输出: -1
lastIndexOf
返回数组中最后一次出现元素的索引。
示例
let arr = [1, 2, 3, 2, 1];
let index = arr.lastIndexOf(2);
console.log(index); // 输出: 3
index = arr.lastIndexOf(4);
console.log(index); // 输出: -1
filter
过滤数组中的元素。
示例
let arr = [1, 2, 3, 4, 5];
let result = arr.filter(x => x % 2 === 0);
console.log(result); // 输出: [2, 4]
sort
对数组进行排序。
语法
arr.sort(compareFn?:(a:any,b:any) => boolean)
参数
- compareFn: (可选) 比较函数。如果不提供比较函数,默认将元素转为字符串进行比较
如果比较函数返回true,表示a元素应该排在b元素之前。 如果比较函数返回false,表示a元素不应该排在b元素之前。
示例
let arr = [3, 1, 4, 1, 5, 9];
arr.sort();
console.log(arr); // 输出: [1, 1, 3, 4, 5, 9]
arr = [3, 1, 4, 1, 5, 9];
arr.sort((i, j) => {
return i < j
});
console.log(arr); // 输出: [1, 1, 3, 4, 5, 9]
map
映射数组中的元素。
示例
let arr = [1, 2, 3];
let result = arr.map(x => x * 2);
console.log(result); // 输出: [2, 4, 6]
copy
复制数组中的元素到另一个数组。
示例
let src = [3, 43, 15, 65, 2];
let dest = src.copy();
console.log(dest); // 输出: [3, 43, 15, 65, 2]
delete
删除数组中指定索引的元素。
示例
let arr = [1, 2, 3, 4, 5];
arr.delete(2);
console.log(arr); // 输出: [1, 2, 4, 5]
includes
检查数组是否包含指定元素。
示例
let arr = [1, 2, 3];
let result = arr.includes(2);
console.log(result); // 输出: true
result = arr.includes(4);
console.log(result); // 输出: false
some
用于测试数组中的某些元素是否满足提供的条件(通过回调函数的测试)。只要数组中至少有一个元素满足条件,some()
方法就会返回true
;如果没有任何元素满足条件,则返回false
。
用法
array.some(callback(element, index, array));
参数说明
element
:当前正在处理的数组元素。index
(可选):当前元素的索引。array
(可选):被遍历的数组本身。
示例
// 示例1:检查数组中是否有大于 10 的数
const numbers = [5, 8, 12, 1, 4];
const hasLargeNumber = numbers.some(number => number > 10);
console.log(hasLargeNumber); // 输出: true (因为12大于10)
// 示例2:检查对象数组中是否有某个属性的值为 true
const users = [
{id: 1, active: false},
{id: 2, active: true},
{id: 3, active: false}
];
const hasActiveUser = users.some(user => user.active === true);
console.log(hasActiveUser); // 输出: true (因为有一个用户active为true)
// 或者使用显式函数:
const hasActiveUser1 = users.some((user, index, array) => {
return user.active === true;
});
console.log(hasActiveUser1); // 输出: true (因为有一个用户active为true)
reverse
反转数组中的元素。
示例
let arr = [1, 2, 3];
arr.reverse();
console.log(arr); // 输出: [3, 2, 1]
unique
移除数组中的重复元素。
示例
let arr = [1, 2, 2, 3, 3, 3];
arr.unique();
console.log(arr); // 输出: [1, 2, 3]