在 ES7 中,新增了一个非常实用的方法 Array.prototype.flat()
,它可以将一个嵌套的数组扁平化为一个新的数组。这个方法非常方便,可以简化我们的代码,提高代码的可读性和可维护性。
方法介绍
Array.prototype.flat()
方法可以将一个嵌套的数组扁平化为一个新的数组。具体来说,这个方法可以将一个多维数组转换为一个一维数组。它接受一个可选的参数 depth
,用来指定扁平化的深度,默认值为 1。
const arr = [1, 2, [3, 4, [5, 6]]]; const flatArr = arr.flat(); // [1, 2, 3, 4, [5, 6]] const deepFlatArr = arr.flat(2); // [1, 2, 3, 4, 5, 6]
应用场景
Array.prototype.flat()
方法可以用在很多场景中,下面列举一些常见的场景。
1. 数组去重
使用 Array.prototype.flat()
方法可以将多维数组扁平化为一维数组,然后使用 Set
对象去重。
const arr = [1, 2, [3, 4, [5, 6]]]; const uniqueArr = [...new Set(arr.flat())]; // [1, 2, 3, 4, 5, 6]
2. 数组展开
使用 Array.prototype.flat()
方法可以将多维数组扁平化为一维数组,然后使用展开运算符 ...
将数组展开。
const arr = [1, 2, [3, 4, [5, 6]]]; const spreadArr = [...arr.flat()]; // [1, 2, 3, 4, 5, 6]
3. 数组拼接
使用 Array.prototype.flat()
方法可以将多维数组扁平化为一维数组,然后使用 concat()
方法将数组拼接。
const arr1 = [1, 2, [3, 4]]; const arr2 = [5, 6, [7, 8]]; const concatArr = arr1.flat().concat(arr2.flat()); // [1, 2, 3, 4, 5, 6, 7, 8]
4. 数组过滤
使用 Array.prototype.flat()
方法可以将多维数组扁平化为一维数组,然后使用 filter()
方法过滤数组。
const arr = [1, 2, [3, 4, [5, 6]]]; const filteredArr = arr.flat().filter((item) => item > 3); // [4, 5, 6]
总结
Array.prototype.flat()
方法是一个非常实用的方法,可以将一个嵌套的数组扁平化为一个新的数组。它可以简化我们的代码,提高代码的可读性和可维护性。在实际开发中,我们可以根据具体的需求使用它来解决一些常见的问题。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65634ebed2f5e1655dcedf82