1. 面试必备:JS数组方法全景解析
前端面试中,数组操作是必考的基础知识点。作为JavaScript最常用的数据结构之一,数组方法的熟练程度直接反映了开发者的编码功底。我在技术面试中经常发现,不少候选人对push/pop这类基础方法对答如流,但遇到reduce/complex场景就支支吾吾。本文将系统梳理JS数组的28个核心方法,按照增删改查、遍历转换、排序筛选三大类进行深度解析,每个方法都配有真实面试题示例和性能对比建议。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础增删改查方法
2.1 数组首尾操作四件套
javascript复制const fruits = ['apple', 'banana']
// 尾部添加(返回新长度)
fruits.push('orange') // ['apple', 'banana', 'orange']
// 尾部删除(返回被删元素)
fruits.pop() // 'orange'
// 头部添加(返回新长度)
fruits.unshift('strawberry') // ['strawberry', 'apple', 'banana']
// 头部删除(返回被删元素)
fruits.shift() // 'strawberry'
高频面试题:实现队列和栈应该用哪些数组方法组合?
- 队列(先进先出):push + shift
- 栈(后进先出):push + pop
2.2 万能splice方法
javascript复制const nums = [1, 2, 3, 4, 5]
// 删除:从索引1开始删2个元素
nums.splice(1, 2) // 返回[2,3],nums变为[1,4,5]
// 插入:从索引1插入'x','y'
nums.splice(1, 0, 'x', 'y') // nums变为[1,'x','y',4,5]
// 替换:索引2开始替换1个元素为'z'
nums.splice(2, 1, 'z') // 返回['y'], nums变为[1,'x','z',4,5]
避坑指南:splice会直接修改原数组,React状态更新时需要深拷贝后再操作
3. 遍历与转换方法
3.1 迭代三巨头对比
| 方法 | 返
