【JS中数组的各种方法】

JavaScript 中数组的方法可以分为多种类型,以下为大家详细介绍:

1. 修改原数组的方法

添加元素
  • push():接收任意数量的参数,将它们逐个添加到数组末尾,并返回修改后数组的长度。
let arr = [1, 2, 3];
let newLength = arr.push(4, 5);
console.log(newLength); // 5
console.log(arr); // [1, 2, 3, 4, 5]
  • unshift():将参数添加到原数组开头,并返回数组的新长度。
let arr = [1, 2, 3];
let newLength = arr.unshift(0);
console.log(newLength); // 4
console.log(arr); // [0, 1, 2, 3]
删除元素
  • pop():删除数组末尾的最后一项,减少数组的 length 值,然后返回移除的项。
let arr = [1, 2, 3];
let lastItem = arr.pop();
console.log(lastItem); // 3
console.log(arr); // [1, 2]
  • shift():删除原数组的第一项,并返回删除元素的值;如果数组为空则返回 undefined
let arr = [1, 2, 3];
let firstItem = arr.shift();
console.log(firstItem); // 1
console.log(arr); // [2, 3]
替换或插入元素
  • splice():可以删除、替换或添加数组中的元素,能指定起始位置和删除的元素数量。
let arr = [1, 2, 3, 4];
// 删除一个元素
arr.splice(2, 1); 
console.log(arr); // [1, 2, 4]
// 替换元素
arr.splice(1, 1, 5); 
console.log(arr); // [1, 5, 4]
// 添加元素
arr.splice(1, 0, 6); 
console.log(arr); // [1, 6, 5, 4]
反转数组
  • reverse():将数组中元素的位置颠倒,并返回该数组,会改变原数组。
let arr = [1, 2, 3];
arr.reverse();
console.log(arr); // [3, 2, 1]
排序数组
  • sort():按升序排列数组项,若要对数字进行排序,需要传入比较函数。
let arr = [3, 1, 2];
arr.sort((a, b) => a - b);
console.log(arr); // [1, 2, 3]

2. 不修改原数组的方法

连接数组
  • concat():合并两个或多个数组,返回一个新数组。
let arr1 = [1, 2];
let arr2 = [3, 4];
let newArr = arr1.concat(arr2);
console.log(newArr); // [1, 2, 3, 4]
提取元素
  • slice():从数组中返回指定开始和结束位置之间的元素,不修改原数组。
let arr = [1, 2, 3, 4];
let slicedArr = arr.slice(1, 3);
console.log(slicedArr); // [2, 3]

3. 查找元素的方法

  • indexOf():查找元素第一次出现的位置,返回索引,如果没有找到则返回 -1。
let arr = [1, 2, 3, 2];
let index = arr.indexOf(2);
console.log(index); // 1
  • lastIndexOf():查找元素最后一次出现的位置,返回索引,如果没有找到则返回 -1。
let arr = [1, 2, 3, 2];
let lastIndex = arr.lastIndexOf(2);
console.log(lastIndex); // 3
  • includes():判断数组是否包含某个元素,返回 truefalse
let arr = [1, 2, 3];
let hasTwo = arr.includes(2);
console.log(hasTwo); // true

4. 遍历数组的方法

  • forEach():对数组中的每个元素执行一次提供的函数,不改变原数组。
let arr = [1, 2, 3];
arr.forEach((item) => {
    console.log(item);
});

5. 转换数组的方法

  • map():创建一个新数组,数组中的元素是原数组元素调用回调函数后的结果。
let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2);
console.log(doubled); // [2, 4, 6]

6. 过滤数组的方法

  • filter():创建一个新数组,包含通过回调函数测试为 true 的所有元素。
let arr = [1, 2, 3, 4];
let even = arr.filter(x => x % 2 === 0);
console.log(even); // [2, 4]

7. 归约方法

  • reduce():对数组中的元素执行累加操作,返回单一的结果。
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 10
  • reduceRight():与 reduce() 类似,但从数组的末尾开始执行。
let arr = [1, 2, 3, 4];
let sum = arr.reduceRight((acc, curr) => acc + curr, 0);
console.log(sum); // 10

8. 其他方法

  • fill():用一个固定值填充一个数组中从起始索引到终止索引内的全部元素,不包括终止索引。
let arr = [1, 2, 3, 4];
arr.fill(0, 1, 3);
console.log(arr); // [1, 0, 0, 4]
  • find():返回数组中满足提供的测试函数的第一个元素的值。
let arr = [1, 2, 3, 4];
let found = arr.find(x => x > 2);
console.log(found); // 3
  • findIndex():返回数组中满足提供的测试函数的第一个元素的索引,如果不存在,则返回 -1。
let arr = [1, 2, 3, 4];
let index = arr.findIndex(x => x > 2);
console.log(index); // 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值