JavaScript面试:数组高级操作与技巧解析
需积分: 0 166 浏览量
更新于2024-09-04
收藏 60KB PDF 举报
本文主要探讨了JavaScript面试中与数组相关的高级操作技巧,包括扁平化n维数组、去重、求最大值、求和、排序以及对象与数组之间的转换。文章通过实例代码详细阐述了这些操作的具体实现。
1. 扁平化n维数组
在JavaScript ES10中,引入了`Array.flat()`方法用于扁平化数组。例如:
```javascript
[1, [2, 3]].flat(2) // [1, 2, 3]
[1, [2, 3, [4, 5]]].flat(3) // [1, 2, 3, 4, 5]
[1, [2, 3, [4, 5]]].toString() // '1,2,3,4,5'
[1, [2, 3, [4, 5]]].flat(Infinity) // [1, 2, 3, 4, 5]
```
如果想要无限维度的扁平化,可以使用`Infinity`作为参数。此外,也可以通过递归和`concat()`方法实现:
```javascript
function flatten(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(arr);
}
return arr;
}
flatten([1, [2, 3]]) // [1, 2, 3]
flatten([1, [2, 3, [4, 5]]) // [1, 2, 3, 4, 5]
```
2. 去重
可以使用ES6的Set数据结构配合`Array.from()`或扩展运算符(...)来实现数组去重:
```javascript
Array.from(new Set([1, 2, 3, 3, 4, 4])) // [1, 2, 3, 4]
[...new Set([1, 2, 3, 3, 4, 4])] // [1, 2, 3, 4]
```
Set只存储唯一值,`Array.from()`将Set转化为数组,而扩展运算符则将Set中的元素展开成数组。
3. 其他操作
- 求最大值:可以使用`Math.max()`配合扩展运算符,例如`Math.max(...arr)`。
- 求和:使用`reduce()`方法,如`arr.reduce((a, b) => a + b, 0)`。
- 排序:使用`sort()`方法,如`arr.sort((a, b) => a - b)`进行升序排列。
- 对象与数组的转化:可以使用`Object.values()`获取对象的所有值为数组,`Object.entries()`则将键值对转化为数组。
这些高级操作对于JavaScript开发者来说至关重要,尤其是在面试和实际项目开发中,熟练掌握这些技巧可以提升代码质量和效率。
2020-11-23 上传
2024-09-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-10-11 上传
2023-05-20 上传
weixin_38649315
- 粉丝: 6
- 资源: 932
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦