JavaScript---数组篇
一、数组定义
JavaScript 中的数组是一种用于存储多个值的有序集合,可以存放任意类型的数据。
let arr = [1, "hello", true, { name: "Tom" }];
二、常用方法总结
1. push()
作用: 向数组末尾添加一个或多个元素,并返回新长度
let arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]
2. pop()
作用: 删除并返回数组最后一个元素
let arr = [1, 2, 3];
let last = arr.pop();
console.log(last); // 3
console.log(arr); // [1, 2]
3. shift()
作用: 删除并返回数组第一个元素
let arr = [1, 2, 3];
let first = arr.shift();
console.log(first); // 1
console.log(arr); // [2, 3]
4. unshift()
作用: 向数组开头添加一个或多个元素,并返回新长度
let arr = [2, 3];
arr.unshift(1);
console.log(arr); // [1, 2, 3]
5. slice(start, end)
作用: 返回从 start 到 end(不包括 end)的新数组(原数组不变)
let arr = [1, 2, 3, 4];
let newArr = arr.slice(1, 3);
console.log(newArr); // [2, 3]
6. splice(index, deleteCount, item1, ...)
作用: 可删除或添加元素,修改数组内容
let arr = [1, 2, 3, 4];
arr.splice(2, 1, 'a'); // 从索引2开始删除1个元素,插入'a'
console.log(arr); // [1, 2, 'a', 4]
7. map()
作用: 对数组每个元素执行函数,生成新数组
let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2);
console.log(doubled); // [2, 4, 6]
8. filter()
作用: 过滤出符合条件的元素组成新数组
let arr = [1, 2, 3, 4];
let evens = arr.filter(x => x % 2 === 0);
console.log(evens); // [2, 4]
9. reduce((acc, cur) => {}, initialValue)
作用: 将数组元素累计为一个值
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10
10. forEach()
作用: 遍历数组每个元素,无返回值
let arr = [1, 2, 3];
arr.forEach(item => console.log(item));
// 输出:1 2 3
11. indexOf(value) / lastIndexOf(value)
作用: 查找指定元素首次/最后一次出现的索引
let arr = [10, 20, 30, 20];
console.log(arr.indexOf(20)); // 1
console.log(arr.lastIndexOf(20)); // 3
三、小结图示
方法名 | 是否改变原数组 | 返回值 | 用途说明 |
---|---|---|---|
push() | ✅ | 新数组长度 | 添加元素到末尾 |
pop() | ✅ | 被删除的元素 | 删除最后一个元素 |
shift() | ✅ | 被删除的元素 | 删除第一个元素 |
unshift() | ✅ | 新数组长度 | 添加元素到开头 |
slice() | ❌ | 新数组 | 截取部分元素 |
splice() | ✅ | 被删除的元素数组 | 增删元素 |
map() | ❌ | 新数组 | 映射转换 |
filter() | ❌ | 新数组 | 过滤元素 |
reduce() | ❌ | 累计结果 | 累加器模式 |
forEach() | ❌ | 无 | 遍历数组 |
indexOf() | ❌ | 索引 | 查找第一次出现的位置 |