在 ES8 中,JavaScript 中的数组新增了一个方法,那就是 Array.prototype.flat()。这个方法的作用是将一个多维数组变成一个一维数组。
方法介绍
语法:
array.flat([depth])
参数:
- depth:可选,默认值为 1,表示要展开的层数。
- 返回值:返回一个展开后的一维数组。
方法用法
在 ES6 中,我们可以利用 ... 运算符来展开一个数组。比如将以下多维数组展开成一维数组:
const arr = [[1, 2], [3, 4], [5, 6]]; const flatArr = [].concat(...arr); // [1, 2, 3, 4, 5, 6]
在 ES8 中,我们可以使用 Array.prototype.flat() 来完成相同的操作:
const arr = [[1, 2], [3, 4], [5, 6]]; const flatArr = arr.flat(); // [1, 2, 3, 4, 5, 6]
如果要展开的层数不止一层,可以将 depth 参数设为大于等于 2 的整数值:
const arr = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]; const flatArr = arr.flat(2); // [1, 2, 3, 4, 5, 6, 7, 8]
如果要展开所有层数,可以将 depth 参数设为 Infinity:
const arr = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]; const flatArr = arr.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8]
方法兼容
ES8 中的 Array.prototype.flat() 方法是一个比较新的方法,兼容性也不是非常好。可以通过以下方法来兼容旧版浏览器:
-- -------------------- ---- ------- -- ----------------------- - -------------------- - -------------- - -- - ------ -------------------------- ---------- - ------ ------------ ------------------------ -- ----- - - - -------------------- - -- - --------- -- -- ---- -- -
方法指导
通过 Array.prototype.flat() 方法,我们可以轻松地将一个多维数组转换成一个一维数组。如此一来,在开发过程中,我们就可以更加便捷地对数组进行操作、处理和管理。
在实际运用中,我们可以使用这个方法来处理表单提交数据、处理深度层次的 JSON 数据、或对获取的数据进行去重等操作。
-- -------------------- ---- ------- -- ------ ----- -------- - --- ----------------------------------------- ----- -------- - --------------------------------------------------- -- -- ---- -- ----- -------- - - -- - -- - -- - - - -- ----- -------- - --------------------------------------- -- ---- ----- --- - ---- --- --- --- --- --- --- ---- ----- ------- - -------------- -----------------
总结
Array.prototype.flat() 方法是 ES8 中新增的一种处理多维数组的新方法。它可以将一个多维数组转换成一个一维数组,非常方便实用。在开发过程中,可以灵活应用这种方法来处理表单提交数据、处理深度层次的 JSON 数据、或对获取的数据进行去重等操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d1d105b5eee0b5259263f4