当前位置: 首页 > news >正文

JavaScript 数组和字符串方法详解

一、数组方法

数组方法是操作数组的核心工具,分为修改原数组返回新数组两类。


1. 常用修改原数组的方法
方法参数返回值说明示例
push...items新长度末尾添加元素arr.push(4) → [1,2,3,4]
pop删除的元素删除最后一个元素arr.pop() → 3(原数组变[1,2]
shift删除的元素删除第一个元素arr.shift() → 1(原数组变[2,3]
unshift...items新长度开头添加元素arr.unshift(0) → [0,1,2,3]
splice(start, deleteCount, ...items)删除的元素数组删除/替换元素arr.splice(1,1,'a') → [2](原数组变[1,'a',3]
sort(compareFunction)排序后的数组原地排序(默认按Unicode排序)arr.sort((a,b) => a-b) 升序排列
reverse反转后的数组反转数组元素顺序arr.reverse() → [3,2,1]

2. 返回新数组的方法
方法参数返回值说明示例
concat...arrays/values新数组合并数组arr.concat([4,5]) → [1,2,3,4,5]
slice(start, end)截取的新数组浅拷贝指定区间元素arr.slice(1,3) → [2,3](原数组不变)
map(element, index, array) => {}新数组遍历并返回处理后的元素arr.map(x => x*2) → [2,4,6]
filter回调函数(返回布尔值)新数组筛选满足条件的元素arr.filter(x => x>1) → [2,3]

3. 高阶函数与工具方法
方法参数返回值说明
forEach回调函数undefined遍历数组,无返回值
reduce(acc, cur, index, arr) => {}, initialValue累积值从左到右累积计算
find回调函数第一个匹配元素查找满足条件的元素(ES6)
findIndex回调函数第一个匹配的索引类似find,返回索引(ES6)
some回调函数布尔值是否有元素满足条件
every回调函数布尔值是否所有元素满足条件
flat(depth)新数组扁平化嵌套数组(ES2019)

二、字符串方法

字符串方法均不修改原字符串(字符串不可变),返回新字符串。


1. 常用方法
方法参数返回值说明示例
slice(start, end)子字符串类似数组的slice'abc'.slice(1,3) → 'bc'
substring(start, end)子字符串不接受负数参数'abc'.substring(1,3) → 'bc'
indexOf(searchValue, fromIndex)索引查找子串位置,不存在返回-1'abc'.indexOf('b') → 1
includes(searchString)布尔值是否包含子串(ES6)'abc'.includes('b') → true
split(separator, limit)数组按分隔符分割字符串'a,b,c'.split(',') → ['a','b','c']
replace(old, new)新字符串替换第一个匹配项(支持正则)'abc'.replace('b','x') → 'axc'
toUpperCase新字符串全大写'abc'.toUpperCase() → 'ABC'
trim新字符串去除两端空格(ES5)' a '.trim() → 'a'

2. 其他实用方法
方法参数返回值说明
startsWith(searchString)布尔值是否以子串开头(ES6)
endsWith(searchString)布尔值是否以子串结尾(ES6)
charAt(index)字符获取指定位置字符
repeat(count)新字符串重复字符串(ES6)
padStart(length, padString)新字符串前补全到指定长度(ES2017)

三、核心区别与注意点
  • 数组 vs 字符串

    • 数组方法可能修改原数组(如pushsplice),字符串方法永不修改原数据。

    • 字符串可通过split转数组,数组通过join转字符串。

  • 易错点

    • splice vs slice:前者修改原数组,后者不修改。

    • substr(start, length)(已废弃) vs substring(start, end)

    • replace默认只替换第一个匹配项,需用正则/g全局替换。

相关文章:

  • Java中的时间类型
  • 智慧园区大数据云平台建设总体方案,平台方案架构-智慧园区大数据平台(320页原件Word)
  • 知识篇 | 低代码开发(Low-Code Development)是个什么东东?
  • 中兴移动互联终端三剑齐发 AI、5G-A、WiFi7构建高效智能网络
  • 132. 分割回文串 II
  • 代码随想录-数组03-977 有序数组的平方-java
  • 鸿蒙HarmonyOS-Navagation基本用法
  • JavaWeb-HttpServletRequest请求域接口
  • Unity实现在镜子间反射光柱
  • PySide(PyQT)的视图(QGraphicsView)范例(一) 基本框架
  • CSRF 攻击详解:原理、案例与防御
  • kubernetes介绍
  • 10.RabbitMQ集群
  • 【大数据项目】计算机行业招聘数据处理与分析系统
  • 2025.3.3总结
  • 面试基础---MySQL 事务隔离级别与 MVCC 深度解析
  • Mac安装配置使用nginx的一系列问题
  • git 学习笔记
  • 【消息队列】BrokerServer的核心概念
  • 在Electron中通过Node-API调用DLL导出函数的完整指南
  • 天津建设工程招标信息网官网/新塘网站seo优化
  • 深圳做棋牌网站建设找哪家公司好/外贸快车
  • 怎样做一个好的网站/市场调研方案
  • ic电子网站建设/网络推广有哪些常见的推广方法
  • wordpress app 管理/南宁seo产品优化服务
  • 网络管理软件app/黑锋网seo