JavaScrip中对于数组的操作的方法(!!是否改变原数组)

1. push()

  • 功能:向数组的末尾添加一个或多个元素,并返回新数组的长度。(改变原数组)
  • 示例
let arr = [1, 2, 3];
arr.push(4); // [1, 2, 3, 4]

2. pop()

  • 功能移除数组的最后一个元素,并返回该元素。(改变原数组)
  • 示例
let arr = [1, 2, 3];
let removedElement = arr.pop(); // 3
console.log(arr); // [1, 2]

3. shift()

  • 功能移除数组的第一个元素,并返回该元素,数组的长度会减 1。(改变原数组)
  • 示例
let arr = [1, 2, 3];
let removedElement = arr.shift(); // 1
console.log(arr); // [2, 3]

4. unshift()

  • 功能:向数组的开头添加一个或多个元素,并返回新数组的长度。(改变原数组)
  • 示例
let arr = [2, 3];
let a = arr.unshift(1); 
console.log(a); // 3
console.log(arr);// [1, 2, 3]

5. concat()

  • 功能:合并两个或多个数组,返回一个新的数组。(生成一个新数组)
  • 示例
let arr1 = [1, 2];
let arr2 = [3, 4];
let newArr = arr1.concat(arr2); // [1, 2, 3, 4]

6. slice()

  • 功能:返回数组的一个浅拷贝,包含从 start 索引到 end 索引(不包括 end)。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4, 5];
let newArr = arr.slice(1, 3); // [2, 3]

7. splice()

  • 功能:从数组中添加、删除或替换元素,直接修改原数组(不改变原数组,生成一个新数组)
  • 示例:(从索引2中开始删除2个元素,并插入6、7。)
let arr = [1, 2, 3, 4, 5];
arr.splice(2, 2, 6, 7); // 从索引 2 开始删除 2 个元素,并插入 6 和 7
console.log(arr); // [1, 2, 6, 7, 5]

8. indexOf()

  • 功能:返回数组中第一个匹配的元素的索引,如果没有找到则返回 -1。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let index = arr.indexOf(3); // 2

9. includes()

  • 功能:判断数组是否包含指定的元素,返回 truefalse(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let contains = arr.includes(3); // true

10. map()

  • 功能返回一个新数组,数组中的每个元素是通过调用提供的函数进行转换后的值。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3];
let newArr = arr.map(x => x * 2); // [2, 4, 6]

11. filter()

  • 功能:返回一个新数组,包含所有通过提供的测试函数的元素。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4, 5];
let filteredArr = arr.filter(x => x > 3); // [4, 5]

12. reduce()

  • 功能:对数组中的每个元素执行指定的操作,并返回一个单一的结果(如求和)。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, curr) => acc + curr, 0); // 10

13. reduceRight()

  • 功能:与 reduce() 类似,但从数组的右侧开始执行(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let sum = arr.reduceRight((acc, curr) => acc + curr, 0); // 10

14. forEach()(可以不修改原数组,也可以通过索引方式改变原数组。

  • 功能:对数组中的每个元素执行指定的回调函数,但不会返回新数组。
  • 示例
let arr = [1, 2, 3];
arr.forEach(x => console.log(x)); // 1 2 3

15. some()

  • 功能:测试数组中是否至少有一个元素满足提供的测试函数,返回 truefalse(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3];
let result = arr.some(x => x > 2); // true

16. every()

  • 功能:测试数组中是否所有元素都满足提供的测试函数,返回 truefalse(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3];
let result = arr.every(x => x > 0); // true

17. sort()

  • 功能:对数组的元素进行排序,默认按字典顺序排序,可以提供比较函数进行自定义排序。(改变原数组)
  • 示例
let arr = [3, 1, 2];
arr.sort(); // [1, 2, 3]

let arr2 = [3, 1, 2];
arr2.sort((a, b) => a - b); // [1, 2, 3]

18. reverse()

  • 功能颠倒数组中元素的顺序,直接修改原数组。(改变原数组)
  • 示例
let arr = [1, 2, 3];
arr.reverse(); // [3, 2, 1]

19. find()

  • 功能返回数组中第一个满足提供的测试函数的元素。如果没有找到返回 undefined(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let result = arr.find(x => x > 2); // 3

20. findIndex()

  • 功能:返回数组中第一个满足测试函数的元素的索引。如果没有找到返回 -1。(不改变原数组,生成一个新数组)
  • 示例
let arr = [1, 2, 3, 4];
let index = arr.findIndex(x => x > 2); // 2(3的index是2)

21. flat()

  • 功能将多维数组“拉平”,返回一个新的数组,默认一层深度,可以通过参数指定深度。(改变原数组)
  • 示例
let arr = [1, [2, [3, 4]]];
let newArr = arr.flat(2); // [1, 2, 3, 4]

22. flatMap()

  • 功能:首先对数组中的每个元素执行指定的函数,然后将结果“拉平”一层并返回。(改变原数组)
  • 示例先执行map,再执行flat
let arr = [1, 2, 3];
let newArr = arr.flatMap(x => [x, x * 2]); // [1, 2, 2, 4, 3, 6]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值