JavaScript面试:一行代码搞定数组操作

0 下载量 29 浏览量 更新于2024-09-02 收藏 57KB PDF 举报
本文是一篇关于JavaScript面试技巧的文章,主要聚焦于数组API的高级操作。作者通过实际应用场景展示了如何使用简洁的代码实现常见的数组处理任务,包括扁平化n维数组、数组去重、求最大值、求和、排序以及对象与数组的转换。 1. 扁平化n维数组: - ES10引入的`Array.flat()`方法是实现扁平化的关键,它接受一个参数n表示要展平的维度。例如,`[1,[2,3]].flat(2)`会返回 `[1,2,3]`,而`[1[[2,3],[4,5]]].flat(Infinity)`则表示无限维度的扁平化,结果为 `[1,2,3,4,5,...]`。 - 传统方法如递归函数`flatten()`也能够实现扁平化,如`function flatten(arr) { while (arr.some(item => Array.isArray(item))) { arr = [].concat(arr); } return arr; }`,它通过不断合并数组直到所有元素非数组为止。 2. 去重: - 使用ES6的Set数据结构能快速去重,`Array.from(new Set([1,2,3,3,4,4]))`会返回 `[1,2,3,4]`。`Array.from`用于将Set转化为数组,而扩展运算符`...`用于展开Set元素。 - 传统的去重方法如`distinct()`函数通过双重循环对比数组中的元素,去除重复项。 3. 排序: - `Array.sort()`方法是内置的排序功能,传入比较函数可以实现自定义排序。例如,`[1,2,3,4].sort((a,b) => a - b)`按升序排列数组。 4. 其他操作: - 数组的最大值和求和可以通过数组的`Math.max()`和`reduce()`方法轻松获取。 - 对象与数组之间的相互转换,JavaScript提供了丰富的工具,如`JSON.parse()`和`JSON.stringify()`用于字符串与对象间的转换。 掌握这些高级数组操作不仅能够提升编程效率,还能在面试中展示出对JavaScript语言深度理解和实际应用能力。理解并熟练运用这些技巧对于求职者来说是非常重要的加分项。