网站一般用什么服务器宁波网红打卡地
一、数组方法
数组方法是操作数组的核心工具,分为修改原数组和返回新数组两类。
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 字符串:
-  
数组方法可能修改原数组(如
push,splice),字符串方法永不修改原数据。 -  
字符串可通过
split转数组,数组通过join转字符串。 
 -  
 -  
易错点:
-  
splicevsslice:前者修改原数组,后者不修改。 -  
substr(start, length)(已废弃) vssubstring(start, end)。 -  
replace默认只替换第一个匹配项,需用正则/g全局替换。 
 -  
 
