JavaScript中的数组是什么_有哪些常用的数组操作方法?

JavaScript数组是动态有序集合,支持任意类型元素和索引访问;含改变原数组(如push、splice)与不改变原数组(如slice、map)两类方法,以及查找、聚合、转字符串等辅助操作。

JavaScript 中的数组是一种用于存储多个值的有序集合,它用索引(从 0 开始)来访问每个元素,可以包含任意类型的数据(数字、字符串、对象、函数甚至其他数组)。它不是固定长度的结构,而是动态可变的对象。

会改变原数组的方法

这类方法直接修改原始数组,适合需要就地更新的场景:

  • push():在末尾添加一个或多个元素,返回新长度
  • pop():删除末尾元素,返回被删值
  • unshift():在开头插入一个或多个元素,返回新长度
  • shift():删除开头元素,返回被删值
  • splice():从指定位置删除、替换或插入元素,返回被删除项组成的数组
  • sort():按字符串顺序升序排列;数值排序需传入回调函数 (a, b) => a - b
  • reverse():反转数组顺序

不改变原数组、返回新数组的方法

这些方法更符合函数式编程习惯,适合需要保留原始数据的逻辑:

  • slice(start, end):截取子数组(浅拷贝),end 不包含
  • concat(...arrays):合并多个数组,返回新数组
  • map(callback):对每个元素执行操作,生成新数组
  • filter(callback):筛选符合条件的元素,返回新数组
  • flatMap(callback):先 map 再 flat(1),适合处理嵌套结构

返回单个值或布尔值的方法

常用于判断、查找或聚合计算:

  • find(callback):返回第一个满足条件的元素
  • findIndex(callback):返回第一个满足条件的索引
  • includes(value):判断是否包含某值,返回 true/false
  • indexOf(value):返回首次出现的索引,未找到返回 -1
  • some(callback)every(callback):分别判断“是否存在”或“是否全部满足”
  • reduce(callback, initialValue):累计计算,如求和、分组、扁平化等

转为字符串或辅助操作的方法

用于格式化输出或类型转换:

  • join(separator):用指定分隔符拼接所有元素为字符串
  • toString():用逗号拼接成字符串(无自定义分隔符)
  • at(index):支持负索引(如 arr.at(-1) 取最后一个)
  • toSorted()toReversed()toSpliced():ES2025 新增的不可变版本,替代 sort()reverse()splice() 的安全选择