数组与高级方法
约 458 字大约 2 分钟
布欧-Lewyon
2026-05-16
首页 › JavaScript › 对象与数组 › 数组与高级方法
数组创建
const arr = [1, 2, 3];
const arr2 = new Array(5); // [empty × 5]
const arr3 = Array.from('abc'); // ['a', 'b', 'c']
const arr4 = Array.of(1, 2, 3); // [1, 2, 3]增删改
const arr = [1, 2, 3];
arr.push(4); // [1,2,3,4] 末尾添加
arr.pop(); // [1,2,3] 删除末尾
arr.unshift(0); // [0,1,2,3] 开头添加
arr.shift(); // [1,2,3] 删除开头
arr.splice(1, 1); // 从索引1删1个 → [1,3]
arr.splice(1, 0, 'a', 'b'); // 从索引1插入 → [1,'a','b',3]
arr.splice(1, 2, 'x'); // 替换 → [1,'x',3]
// 不变操作
const sliced = arr.slice(0, 2);
const concated = arr.concat([4, 5]);遍历与转换
const arr = [1, 2, 3, 4, 5];
// map:映射
const doubled = arr.map(n => n * 2); // [2,4,6,8,10]
// filter:过滤
const evens = arr.filter(n => n % 2 === 0); // [2,4]
// reduce:归约
const sum = arr.reduce((acc, cur) => acc + cur, 0); // 15
// find:查找
const found = arr.find(n => n > 3); // 4
// some:任一满足
const hasEven = arr.some(n => n % 2 === 0); // true
// every:全部满足
const allPositive = arr.every(n => n > 0); // true
// flat:扁平化
[1, [2, [3]]].flat(2); // [1,2,3]
// flatMap:映射后扁平化
['Hello', 'World'].flatMap(s => s.split(''));
// ['H','e','l','l','o','W','o','r','l','d']排序
// sort 默认按字符串排序
[3, 10, 1].sort(); // [1, 10, 3] ❌ 不是数字排序
// 自定义排序
[3, 10, 1].sort((a, b) => a - b); // [1, 3, 10] ✅
[3, 10, 1].sort((a, b) => b - a); // [10, 3, 1] 降序
// 对象排序
const users = [{ name: '张三', age: 28 }, { name: '李四', age: 22 }];
users.sort((a, b) => a.age - b.age);小结
| 方法 | 作用 | 是否修改原数组 |
|---|---|---|
map() | 映射 | ❌ |
filter() | 过滤 | ❌ |
reduce() | 归约 | ❌ |
find() | 查找 | ❌ |
some() / every() | 条件检测 | ❌ |
sort() | 排序 | ✅ |
splice() | 增删改 | ✅ |
