JavaScript面试:数组高级操作与技巧解析
需积分: 0 150 浏览量
更新于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开发者来说至关重要,尤其是在面试和实际项目开发中,熟练掌握这些技巧可以提升代码质量和效率。
254 浏览量
247 浏览量
378 浏览量
2025-01-07 上传
2025-01-07 上传
2025-01-07 上传
2025-01-07 上传
weixin_38649315
- 粉丝: 6
- 资源: 932
最新资源
- ParaAloe
- 上学期高一年级组工作计划
- LBS^2 milw0rm模板
- angular2-test:Angular2游乐场
- 东方日报
- cat-and-mouse
- Hawk-GUI:Hawk的Web界面,用于在Web上存储,处理和显示报告
- aif-interactive-map-frontend:AIF交互式地图的前端代码
- make_dataset.rar
- 各种角度的路面裂痕.rar
- absoduler.js:绝对调度程序-事件调度程序实时同步多个设备
- 光子的颜色-项目开发
- git-app_test
- 国土所2014年工作计划
- PJBlog3 BeijingNO.1模板
- nucamp_bootstrap:Nucamp Bootstrap项目网站