Skip to content
javascript
const arr = [4, 3, 2, 1];

/* --- 操作数组 --- */

// 在末尾添加元素,结果: [4, 3, 2, 1, 5]
arr.push(5);

// 在开头添加元素,结果: [0, 4, 3, 2, 1, 5]
arr.unshift(0);

// 移除最后一个元素,结果: [0, 4, 3, 2, 1]
arr.pop();

// 移除第一个元素,结果: [4, 3, 2, 1]
arr.shift();

// 反转元素,结果: [1, 2, 3, 4]
arr.reverse();

// 与另一个数组连接,结果: [1, 2, 3, 4, 5, 6]
arr.concat([5, 6]);

// 在索引2处插入元素,结果: [1, 2, 'a', 'b', 3, 4]
arr.splice(2, 0, 'a', 'b');

// 从索引0-2复制元素到索引2,结果: [1, 2, 1, 2, 3, 4]
arr.copyWithin(2, 0, 2);

// 用0填充索引2-4的元素,结果: [1, 2, 0, 0, 3, 4]
arr.fill(0, 2, 4);

/* --- 排序和搜索数组 --- */

// 升序排序,结果: [0, 0, 1, 2, 3, 4]
arr.sort((a, b) => a - b);

// 查找3的第一个索引,结果: 4
arr.indexOf(3);

// 查找3的最后一个索引,结果: 4
arr.lastIndexOf(3);

// 检查数组是否包括3,结果: true
arr.includes(3);

// 通过索引访问数组元素,结果: 0
arr.at(1);

/* --- 遍历数组 --- */

// 遍历并打印值
arr.forEach((value, index) => console.log(value));

/* --- 筛选和查找 --- */

// 保留偶数,结果: [0, 0, 2, 4]
arr.filter((num) => num % 2 === 0);

// 查找第一个大于2的元素,结果: 3
arr.find((num) => num > 2);

// 查找第一个大于2的元素的索引,结果: 4
arr.findIndex((num) => num > 2);

/* --- 映射和缩减 --- */

// 将每个元素加倍,结果: [0, 0, 2, 4, 6, 8]
arr.map((num) => num * 2);

// 所有元素之和,结果: 10
arr.reduce((arr, curr) => arr + curr, 0);

// 从右到左所有元素之和,结果: 10
arr.reduceRight((arr, curr) => arr + curr, 0);

/* --- 类型转换 --- */

// 使用逗号分隔符转换为字符串,结果: "0, 0, 1, 2, 3, 4"
arr.join(', ');

// 转换为区域特定字符串
arr.toLocaleString();

/* --- 检查和转换 --- */

// 检查所有值是否大于0,结果: false
arr.every((val) => val > 0);

// 检查某些值是否大于0,结果: true
arr.some((val) => val > 0);

// 创建一个新数组,所有子数组元素连接在一起,结果: [0, 0, 1, 2, 3, 4]
arr.flat();

// 映射然后展平,结果: [0, 0, 2, 4, 6, 8]
arr.flatMap((x) => x * 2);