JavaScript 中的数组操作函数

JavaScript 中的数组操作函数非常丰富,提供了多种方法来创建、修改、遍历和操作数组。以下是一些常用的数组操作函数及其示例:

1. 添加和移除元素

- `push`:在数组末尾添加一个或多个元素,返回新长度。
- `pop`:移除并返回数组末尾的元素。
- `unshift`:在数组开头添加一个或多个元素,返回新长度。
- `shift`:移除并返回数组开头的元素。
- `splice`:添加/删除特定位置的元素。


let arr = [1, 2, 3];

// push
arr.push(4);  // arr: [1, 2, 3, 4]

// pop
let last = arr.pop();  // last: 4, arr: [1, 2, 3]

// unshift
arr.unshift(0);  // arr: [0, 1, 2, 3]

// shift
let first = arr.shift();  // first: 0, arr: [1, 2, 3]

// splice
arr.splice(1, 1, 'a', 'b');  // arr: [1, 'a', 'b', 3] 删除位置 1 元素(2个),并插入 'a', 'b'
 

2. 访问和查找元素

- `indexOf`:返回第一次出现的指定元素的索引,如果不存在则返回 -1。
- `lastIndexOf`:返回最后一次出现的指定元素的索引,如果不存在则返回 -1。
- `includes`:判断数组是否包含指定元素,返回布尔值。
- `find`:返回第一个通过测试的元素的值。
- `findIndex`:返回第一个通过测试的元素的索引,如果没有找到返回 -1。


let arr = [1, 2, 3, 4, 3];

// indexOf
console.log(arr.indexOf(3));  // 输出: 2

// lastIndexOf
console.log(arr.lastIndexOf(3));  // 输出: 4

// includes
console.log(arr.includes(2));  // 输出: true

// find
let found = arr.find(element => element > 2);
console.log(found);  // 输出: 3

// findIndex
let index = arr.findIndex(element => element > 2);
console.log(index);  // 输出: 2
 

3. 遍历数组

- `forEach`:对数组的每个元素执行指定的函数。


let arr = [1, 2, 3];
arr.forEach((element, index) => {
  console.log(`Index: ${index}, Value: ${element}`);
});
 

4. 创建新数组

- `map`:对数组的每个元素执行指定的函数并返回新数组。
- `filter`:创建一个包含所有通过测试的元素的新数组。
- `concat`:合并多个数组并返回新数组。
- `slice`:返回一个新的数组,包含从开始到结束(不包括结束)的选定元素。


let arr = [1, 2, 3];

// map
let mappedArr = arr.map(x => x * 2);  // [2, 4, 6]

// filter
let filteredArr = arr.filter(x => x > 1);  // [2, 3]

// concat
let arr2 = [4, 5, 6];
let combined = arr.concat(arr2);  // [1, 2, 3, 4, 5, 6]

// slice
let slicedArr = arr.slice(1, 3);  // [2, 3]
 

5. 修改数组的顺序

- `reverse`:反转数组中的元素。
- `sort`:对数组元素进行排序,默认按字符串 Unicode 排序,可以通过比较函数定制排序。


let arr = [1, 2, 3];

// reverse
arr.reverse();  // [3, 2, 1]

// sort
let unsortedArr = [3, 1, 4, 1, 5];
unsortedArr.sort();  // 默认排序: [1, 1, 3, 4, 5]
unsortedArr.sort((a, b) => a - b);  // 数值升序排序: [1, 1, 3, 4, 5]
 

6. 聚合和简化数组

- `reduce`:对数组的每个元素执行指定的 reducer 函数,最终计算为单个值。
- `reduceRight`:与 `reduce` 类似,但从右到左执行。


let arr = [1, 2, 3, 4];

// reduce
let sum = arr.reduce((acc, curr) => acc + curr, 0);  // 10

// reduceRight
let reversedSum = arr.reduceRight((acc, curr) => acc + curr, 0);  // 10
 

7. 其他常用方法

- `join`:将数组的所有元素连接成一个字符串。
- `flat`:将多维数组平铺成一维数组。
- `flatMap`:结合 `map` 和 `flat`,首先对每个元素执行映射函数,然后将结果压平成一个新数组。
- `Array.from`:从类数组或可迭代对象创建新的数组实例。
- `Array.isArray`:检查某个值是否为数组。


let arr = [1, 2, 3];

// join
let str = arr.join('-');  // "1-2-3"

// flat
let nestedArr = [1, [2, [3, 4]]];
let flatArr = nestedArr.flat(2);  // [1, 2, 3, 4]

// flatMap
let mappedFlatArr = arr.flatMap(x => [x, x * 2]);  // [1, 2, 2, 4, 3, 6]

// Array.from
let set = new Set([1, 2, 3]);
let arrayFromSet = Array.from(set);  // [1, 2, 3]

// Array.isArray
console.log(Array.isArray(arr));  // true
 

 这些函数使得JavaScript中的数组操作非常灵活和强大,可以满足各种数据处理需求。希望这些示例能帮助你更加了解和使用这些数组操作函数。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值