在 ECMAScript(JavaScript) 中,数组是最常用的数据结构之一。下面从创建、遍历、增删改查、常用高阶函数、ES6+ 新特性几个方面系统说明如何处理数组数据。
const arr1 = [1, 2, 3];
const arr2 = new Array(3); // [empty × 3]
const arr3 = Array.of(1, 2, 3); // [1,2,3]
const arr4 = Array.from('abc'); // ['a','b','c']
const arr = [10, 20, 30];
arr[0]; // 10
arr[1] = 25; // 修改
arr.length; // 3
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
for (const item of arr) {
console.log(item);
}
arr.forEach((item, index) => {
console.log(index, item);
});
const arr = [1, 2, 3];
arr.push(4); // 末尾添加 → [1,2,3,4]
arr.pop(); // 末尾删除
arr.unshift(0); // 开头添加
arr.shift(); // 开头删除
arr.splice(1, 1); // 从索引1删除1个
arr.splice(1, 0, 9); // 插入
const nums = [1, 2, 3];
const double = nums.map(n => n * 2);
// [2,4,6]
const evens = nums.filter(n => n % 2 === 0);
const sum = nums.reduce((acc, n) => acc + n, 0);
nums.find(n => n > 1); // 2
nums.findIndex(n => n > 1); // 1
nums.some(n => n > 2); // true
nums.every(n => n > 0); // true
nums.sort((a, b) => a - b);
nums.includes(2); // true
const a = [1, 2];
const b = [...a, 3]; // [1,2,3]
const [x, y] = [10, 20];
Array.from({ length: 3 }, (_, i) => i);
// [0,1,2]
[1, [2, [3]]].flat(2);
// [1,2,3]
函数式风格(不修改原数组):
const newArr = arr.map(x => x + 1);
const users = [
{ name: 'Tom', age: 18 },
{ name: 'Lucy', age: 22 },
{ name: 'Jack', age: 16 }
];
const names = users
.filter(u => u.age >= 18)
.map(u => u.name);
// ['Tom','Lucy']
如果你有具体场景(如:去重、分组、树形结构、异步处理数组等),可以告诉我,我可以给你更针对性的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。