【JavaScript初级】常用的数组处理方法,以及巧妙的记忆方法

ops/2025/3/1 15:47:14/

JavaScript 中数组是非常常用的数据结构,掌握其常用的处理方法可以大大提高开发效率。以下是常用的数组处理方法,以及一些巧妙的记忆方法:


1. push()

  • 作用:在数组末尾添加一个或多个元素。
  • 示例
    javascript">let arr = [1, 2];
    arr.push(3); // [1, 2, 3]
    
  • 记忆方法push 像“推”东西到数组的末尾。

2. pop()

  • 作用:移除数组的最后一个元素。
  • 示例
    javascript">let arr = [1, 2, 3];
    arr.pop(); // [1, 2]
    
  • 记忆方法pop 像“弹出”数组的最后一个元素。

3. shift()

  • 作用:移除数组的第一个元素。
  • 示例
    javascript">let arr = [1, 2, 3];
    arr.shift(); // [2, 3]
    
  • 记忆方法shift 像“移动”数组的第一个元素。

4. unshift()

  • 作用:在数组的开头添加一个或多个元素。
  • 示例
    javascript">let arr = [1, 2];
    arr.unshift(0); // [0, 1, 2]
    
  • 记忆方法unshiftshift 的反操作,向数组开头“推”元素。

5. concat()

  • 作用:合并两个或多个数组。
  • 示例
    javascript">let arr1 = [1, 2];
    let arr2 = [3, 4];
    let arr3 = arr1.concat(arr2); // [1, 2, 3, 4]
    
  • 记忆方法concat 是“连接”的意思,将数组连接在一起。

6. slice()

  • 作用:返回数组的一个浅拷贝片段。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let sliced = arr.slice(1, 3); // [2, 3]
    
  • 记忆方法slice 像“切片”,从数组中切出一部分。

7. splice()

  • 作用:从数组中添加或删除元素。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    arr.splice(1, 2, 5); // [1, 5, 4]
    
  • 记忆方法splice 是“拼接”,可以在任意位置添加或删除元素。

8. map()

  • 作用:对数组中的每个元素执行函数,返回新数组。
  • 示例
    javascript">let arr = [1, 2, 3];
    let mapped = arr.map(x => x * 2); // [2, 4, 6]
    
  • 记忆方法map 像“映射”,将数组中的每个元素映射为新值。

9. filter()

  • 作用:过滤数组,返回符合条件的元素组成的新数组。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let filtered = arr.filter(x => x > 2); // [3, 4]
    
  • 记忆方法filter 像“过滤器”,筛选出符合条件的元素。

10. reduce()

  • 作用:将数组缩减为单个值。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let reduced = arr.reduce((acc, val) => acc + val, 0); // 10
    
  • 记忆方法reduce 是“减少”,将数组“压缩”为一个值。

11. forEach()

  • 作用:对数组中的每个元素执行函数,没有返回值。
  • 示例
    javascript">let arr = [1, 2, 3];
    arr.forEach(x => console.log(x)); // 1, 2, 3
    
  • 记忆方法forEach 是“对每个”元素执行操作。

12. find()

  • 作用:返回数组中第一个符合条件的元素。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let found = arr.find(x => x > 2); // 3
    
  • 记忆方法find 是“找到”第一个符合条件的元素。

13. some()

  • 作用:检查数组中是否有至少一个元素符合条件。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let hasSome = arr.some(x => x > 3); // true
    
  • 记忆方法some 是“某些”,检查是否有某些元素符合条件。

14. every()

  • 作用:检查数组中的所有元素是否都符合条件。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let allMatch = arr.every(x => x > 0); // true
    
  • 记忆方法every 是“每个”,检查是否每个元素都符合条件。

15. includes()

  • 作用:检查数组是否包含某个值。
  • 示例
    javascript">let arr = [1, 2, 3];
    let hasValue = arr.includes(2); // true
    
  • 记忆方法includes 是“包含”,检查数组是否包含某个值。

16. indexOf()

  • 作用:返回数组中某个值的第一个索引,若不存在则返回 -1
  • 示例
    javascript">let arr = [1, 2, 3];
    let index = arr.indexOf(2); // 1
    
  • 记忆方法indexOf 是“索引”,返回值的索引位置。

17. join()

  • 作用:将数组的所有元素连接成一个字符串。
  • 示例
    javascript">let arr = [1, 2, 3];
    let str = arr.join('-'); // "1-2-3"
    
  • 记忆方法join 是“连接”,将数组元素连接成字符串。

18. reverse()

  • 作用:反转数组的顺序。
  • 示例
    javascript">let arr = [1, 2, 3];
    arr.reverse(); // [3, 2, 1]
    
  • 记忆方法reverse 是“反转”,将数组顺序倒过来。

19. sort()

  • 作用:对数组元素进行排序。
  • 示例
    javascript">let arr = [3, 1, 2];
    arr.sort(); // [1, 2, 3]
    
  • 记忆方法sort 是“排序”,将数组元素按顺序排列。

20. flat()

  • 作用:将嵌套数组“扁平化”。
  • 示例
    javascript">let arr = [1, [2, [3]]];
    let flattened = arr.flat(2); // [1, 2, 3]
    
  • 记忆方法flat 是“扁平化”,将嵌套数组“压平”。

21. flatMap()

  • 作用:先对数组中的每个元素执行映射函数,然后将结果“扁平化”一层。
  • 示例
    javascript">let arr = [1, 2, 3];
    let flatMapped = arr.flatMap(x => [x, x * 2]); // [1, 2, 2, 4, 3, 6]
    
  • 记忆方法flatMapmapflat 的结合,先映射再扁平化。

22. fill()

  • 作用:用固定值填充数组的指定范围。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    arr.fill(0, 1, 3); // [1, 0, 0, 4]
    
  • 记忆方法fill 是“填充”,用指定值填充数组的某一部分。

23. copyWithin()

  • 作用:将数组的一部分复制到同一数组的另一个位置。
  • 示例
    javascript">let arr = [1, 2, 3, 4, 5];
    arr.copyWithin(0, 3); // [4, 5, 3, 4, 5]
    
  • 记忆方法copyWithin 是“内部复制”,将数组的一部分复制到另一位置。

24. entries()

  • 作用:返回一个包含数组键值对的迭代器。
  • 示例
    javascript">let arr = ['a', 'b', 'c'];
    for (let [index, value] of arr.entries()) {console.log(index, value); // 0 'a', 1 'b', 2 'c'
    }
    
  • 记忆方法entries 是“条目”,返回数组的键值对。

25. keys()

  • 作用:返回一个包含数组键的迭代器。
  • 示例
    javascript">let arr = ['a', 'b', 'c'];
    for (let key of arr.keys()) {console.log(key); // 0, 1, 2
    }
    
  • 记忆方法keys 是“键”,返回数组的索引。

26. values()

  • 作用:返回一个包含数组值的迭代器。
  • 示例
    javascript">let arr = ['a', 'b', 'c'];
    for (let value of arr.values()) {console.log(value); // 'a', 'b', 'c'
    }
    
  • 记忆方法values 是“值”,返回数组的元素。

27. findIndex()

  • 作用:返回数组中第一个符合条件的元素的索引,若不存在则返回 -1
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let index = arr.findIndex(x => x > 2); // 2
    
  • 记忆方法findIndexfind 的索引版本,返回符合条件的索引。

28. reduceRight()

  • 作用:从右到左将数组缩减为单个值。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let reducedRight = arr.reduceRight((acc, val) => acc + val, 0); // 10
    
  • 记忆方法reduceRightreduce 的从右到左版本。

29. toLocaleString()

  • 作用:将数组转换为本地化的字符串。
  • 示例
    javascript">let arr = [1, 'a', new Date()];
    let str = arr.toLocaleString(); // "1,a,2023/10/10 12:00:00"
    
  • 记忆方法toLocaleString 是“本地化字符串”,将数组转换为本地格式的字符串。

30. toString()

  • 作用:将数组转换为字符串。
  • 示例
    javascript">let arr = [1, 2, 3];
    let str = arr.toString(); // "1,2,3"
    
  • 记忆方法toString 是“转换为字符串”,将数组转换为字符串。

31. Array.isArray()

  • 作用:检查一个值是否为数组。
  • 示例
    javascript">let arr = [1, 2, 3];
    let isArr = Array.isArray(arr); // true
    
  • 记忆方法Array.isArray 是“是否是数组”,用于检查是否为数组。

32. Array.from()

  • 作用:将类数组对象或可迭代对象转换为数组。
  • 示例
    javascript">let str = 'hello';
    let arr = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
    
  • 记忆方法Array.from 是“从…创建数组”,将其他对象转换为数组。

33. Array.of()

  • 作用:创建一个包含任意数量元素的新数组。
  • 示例
    javascript">let arr = Array.of(1, 2, 3); // [1, 2, 3]
    
  • 记忆方法Array.of 是“创建数组”,用于创建包含指定元素的新数组。

34. at()

  • 作用:返回数组中指定索引的元素,支持负索引。
  • 示例
    javascript">let arr = [1, 2, 3];
    let value = arr.at(-1); // 3
    
  • 记忆方法at 是“在…位置”,返回指定索引的元素。

35. with()

  • 作用:返回一个新数组,其中指定索引的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3];
    let newArr = arr.with(1, 4); // [1, 4, 3]
    
  • 记忆方法with 是“替换”,返回一个新数组,其中指定索引的元素被替换。

36. toReversed()

  • 作用:返回一个新数组,其中元素顺序与原数组相反。
  • 示例
    javascript">let arr = [1, 2, 3];
    let reversed = arr.toReversed(); // [3, 2, 1]
    
  • 记忆方法toReversed 是“反转”,返回一个新数组,其中元素顺序与原数组相反。

37. toSorted()

  • 作用:返回一个新数组,其中元素按指定顺序排序。
  • 示例
    javascript">let arr = [3, 1, 2];
    let sorted = arr.toSorted(); // [1, 2, 3]
    
  • 记忆方法toSorted 是“排序”,返回一个新数组,其中元素按指定顺序排序。

38. toSpliced()

  • 作用:返回一个新数组,其中指定范围的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let spliced = arr.toSpliced(1, 2, 5); // [1, 5, 4]
    
  • 记忆方法toSpliced 是“拼接”,返回一个新数组,其中指定范围的元素被替换为指定值。

39. with()

  • 作用:返回一个新数组,其中指定索引的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3];
    let newArr = arr.with(1, 4); // [1, 4, 3]
    
  • 记忆方法with 是“替换”,返回一个新数组,其中指定索引的元素被替换。

40. groupBy()

  • 作用:将数组元素按指定条件分组。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupBy(x => x % 2 === 0 ? 'even' : 'odd'); // { odd: [1, 3], even: [2, 4] }
    
  • 记忆方法groupBy 是“分组”,将数组元素按指定条件分组。

41. groupByToMap()

  • 作用:将数组元素按指定条件分组,并返回一个 Map 对象。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupByToMap(x => x % 2 === 0 ? 'even' : 'odd'); // Map { 'odd' => [1, 3], 'even' => [2, 4] }
    
  • 记忆方法groupByToMap 是“分组到 Map”,将数组元素按指定条件分组并返回 Map 对象。

42. findLast()

  • 作用:返回数组中最后一个符合条件的元素。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let found = arr.findLast(x => x > 2); // 4
    
  • 记忆方法findLast 是“找到最后一个”,返回数组中最后一个符合条件的元素。

43. findLastIndex()

  • 作用:返回数组中最后一个符合条件的元素的索引,若不存在则返回 -1
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let index = arr.findLastIndex(x => x > 2); // 3
    
  • 记忆方法findLastIndex 是“找到最后一个索引”,返回数组中最后一个符合条件的元素的索引。

44. toSorted()

  • 作用:返回一个新数组,其中元素按指定顺序排序。
  • 示例
    javascript">let arr = [3, 1, 2];
    let sorted = arr.toSorted(); // [1, 2, 3]
    
  • 记忆方法toSorted 是“排序”,返回一个新数组,其中元素按指定顺序排序。

45. toSpliced()

  • 作用:返回一个新数组,其中指定范围的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let spliced = arr.toSpliced(1, 2, 5); // [1, 5, 4]
    
  • 记忆方法toSpliced 是“拼接”,返回一个新数组,其中指定范围的元素被替换为指定值。

46. with()

  • 作用:返回一个新数组,其中指定索引的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3];
    let newArr = arr.with(1, 4); // [1, 4, 3]
    
  • 记忆方法with 是“替换”,返回一个新数组,其中指定索引的元素被替换。

47. groupBy()

  • 作用:将数组元素按指定条件分组。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupBy(x => x % 2 === 0 ? 'even' : 'odd'); // { odd: [1, 3], even: [2, 4] }
    
  • 记忆方法groupBy 是“分组”,将数组元素按指定条件分组。

48. groupByToMap()

  • 作用:将数组元素按指定条件分组,并返回一个 Map 对象。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupByToMap(x => x % 2 === 0 ? 'even' : 'odd'); // Map { 'odd' => [1, 3], 'even' => [2, 4] }
    
  • 记忆方法groupByToMap 是“分组到 Map”,将数组元素按指定条件分组并返回 Map 对象。

49. findLast()

  • 作用:返回数组中最后一个符合条件的元素。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let found = arr.findLast(x => x > 2); // 4
    
  • 记忆方法findLast 是“找到最后一个”,返回数组中最后一个符合条件的元素。

50. findLastIndex()

  • 作用:返回数组中最后一个符合条件的元素的索引,若不存在则返回 -1
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let index = arr.findLastIndex(x => x > 2); // 3
    
  • 记忆方法findLastIndex 是“找到最后一个索引”,返回数组中最后一个符合条件的元素的索引。

51. toSorted()

  • 作用:返回一个新数组,其中元素按指定顺序排序。
  • 示例
    javascript">let arr = [3, 1, 2];
    let sorted = arr.toSorted(); // [1, 2, 3]
    
  • 记忆方法toSorted 是“排序”,返回一个新数组,其中元素按指定顺序排序。

52. toSpliced()

  • 作用:返回一个新数组,其中指定范围的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let spliced = arr.toSpliced(1, 2, 5); // [1, 5, 4]
    
  • 记忆方法toSpliced 是“拼接”,返回一个新数组,其中指定范围的元素被替换为指定值。

53. with()

  • 作用:返回一个新数组,其中指定索引的元素被替换为指定值。
  • 示例
    javascript">let arr = [1, 2, 3];
    let newArr = arr.with(1, 4); // [1, 4, 3]
    
  • 记忆方法with 是“替换”,返回一个新数组,其中指定索引的元素被替换。

54. groupBy()

  • 作用:将数组元素按指定条件分组。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupBy(x => x % 2 === 0 ? 'even' : 'odd'); // { odd: [1, 3], even: [2, 4] }
    
  • 记忆方法groupBy 是“分组”,将数组元素按指定条件分组。

55. groupByToMap()

  • 作用:将数组元素按指定条件分组,并返回一个 Map 对象。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let grouped = arr.groupByToMap(x => x % 2 === 0 ? 'even' : 'odd'); // Map { 'odd' => [1, 3], 'even' => [2, 4] }
    
  • 记忆方法groupByToMap 是“分组到 Map”,将数组元素按指定条件分组并返回 Map 对象。

56. findLast()

  • 作用:返回数组中最后一个符合条件的元素。
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let found = arr.findLast(x => x > 2); // 4
    
  • 记忆方法findLast 是“找到最后一个”,返回数组中最后一个符合条件的元素。

57. findLastIndex()

  • 作用:返回数组中最后一个符合条件的元素的索引,若不存在则返回 -1
  • 示例
    javascript">let arr = [1, 2, 3, 4];
    let index = arr.findLastIndex(x => x > 2); // 3
    
  • 记忆方法findLastIndex 是“找到最后一个索引”,返回数组中最后一个符合条件的元素的索引。

58. toSorted()

  • 作用:返回一个新数组,其中元素按指定顺序排序。
  • 示例
    javascript">let arr = [3, 1, 2];
    let sorted = arr.toSorted(); // [1, 2, 3]
    
  • 记忆方法toSorted 是“排序”,返回一个新数组,其中元素按指定顺序排序。

记忆技巧总结:

  1. 增删操作

    • 末尾操作push(推入)、pop(弹出)。
    • 开头操作unshift(推入开头)、shift(移出开头)。
    • 任意位置splice(拼接)、toSpliced(新数组拼接)。
  2. 查找与判断

    • 查找元素find(找到第一个)、findLast(找到最后一个)、indexOf(索引)、findIndex(索引)、findLastIndex(最后一个索引)。
    • 条件判断some(某些)、every(每个)、includes(包含)。
  3. 遍历与转换

    • 遍历操作map(映射)、forEach(对每个)、filter(过滤)、reduce(缩减)、reduceRight(从右到左缩减)。
    • 转换操作join(连接成字符串)、flat(扁平化)、flatMap(映射后扁平化)、reverse(反转)、sort(排序)、toReversed(新数组反转)、toSorted(新数组排序)。
  4. 创建与复制

    • 创建数组Array.from(从类数组创建)、Array.of(创建包含指定元素)。
    • 复制与填充slice(切片)、copyWithin(内部复制)、fill(填充)。
  5. 分组与聚合

    • 分组操作groupBy(分组)、groupByToMap(分组到Map)。
    • 聚合操作reduce(聚合)、reduceRight(从右到左聚合)。
  6. 迭代与获取

    • 迭代器entries(键值对)、keys(键)、values(值)。
    • 获取元素at(指定索引)、with(替换元素并返回新数组)。
  7. 其他实用方法

    • 类型检查Array.isArray(是否是数组)。
    • 本地化toLocaleString(本地化字符串)。
    • 字符串转换toString(转换为字符串)。

通过以上分类记忆,可以更高效地掌握和使用JavaScript数组的各种方法。


http://www.ppmy.cn/ops/162266.html

相关文章

java开发——为什么要使用动态代理?

举个例子:假如有一个杀手专杀男的,不杀女的。代码如下: public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…

Linux的诞生:一场自由与协作的技术革命

Linux的诞生:一场自由与协作的技术革命 在今天的互联网世界,Linux几乎无处不在——从智能手机(Android内核)到超级计算机,从云计算平台到家用路由器,它的身影渗透在技术的各个角落。但这样一个改变世界的操…

蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南

蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南 蓝蝶bluestacks模拟器root和magisk以及Lsposed和shamiko框架的安装过应用检测 一、引言 蓝蝶(BlueStacks)模拟器是一款广受欢迎的安卓模拟器&…

winfrom的progressBar 鼠标移上去显示 进度条的时间

需求描述: 播放IPC摄像头(海康、大华)的录像回放,视频窗口下方有个进度条,能显示当前录像播放的进度,点击进度条能将视频跳转到指定的时间点继续播放... 现在需要再进度条上显示视频的时间,用来…

LeetCode15

LeetCode15 目录 题目描述示例思路分析代码段代码逐行讲解复杂度分析总结的知识点整合总结 题目描述 给你一个整数数组 nums,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k,同时还满足 nums[i] nums[j] nums[k] 0。…

随身wifi wps是什么?(Wi-Fi Protected Setup)一种简化无线网络连接的技术,允许用户无需手动输入密码即可快速连接设备

文章目录 **WPS的核心功能**1. **快速连接方式**:2. **适用场景**: **使用步骤(以华为随行WiFi为例)****安全风险与建议****支持WPS的设备示例** 好了,让我们解决这个关于便携式 Wi-Fi 设备中 WPS 的问题。首先&#x…

2.8作业

1 /*message.php代码*/访问message.php传参&#xff0c;m&#xff0c;s&#xff0c;f <?php class message{public $tokenadmin; } $m new message(); echo base64_encode(serialize($m)); ?> 2 reserve2 offset flag求原flag 49那里第一遍写错了&#xff08;没有…

Springboot各版本与Java JDK的对应关系及JDK商用版本

Spring Boot各版本对应的 JDK 如下&#xff1a; Spring Boot 2.5.x&#xff1a;-> JDK 16 及以上版本。 Spring Boot 2.4.x&#xff1a;-> JDK 11 及以上版本。 Spring Boot 2.3.x&#xff1a;-> JDK 8 及以上版本&#xff0c;建议使用 JDK 11 及以上版本。 Spring B…