揭秘 Array.prototype.flat
旧方法
新方法!
魔法
等待
总之
ES2019 现已正式发布,供大家使用。需要注意的是,如果您使用这些功能,请确保您的浏览器和/或编译器支持它们。
事不宜迟,让我们深入研究第一个新功能。我给你 Array.prototype.flat!
旧方法
由于多种原因,我们的代码中存在嵌入式数组,老实说,它们有点麻烦。
let arr = [1, 2, [3, 4, [5, 6]]]
处理这类事情过去需要使用像下面代码那样的非直观技巧。
var merged = [].concat.apply([], arr);
而这只会导致一个深度层次被压平!
[1, 2, 3, 4, [5, 6]]
嘘!
新方法!
然后出现了flat()
。这改变了游戏规则。
做我们上面所做的事情是轻而易举的。
var merged = arr.flat(1)
这个参数就是我们想要展平的深度。所以,像之前一样,一层深度就能得到这个结果。
[1, 2, 3, 4, [5, 6]]
请注意,如果您不传递参数,则默认为1
。这意味着这些语句是等效的。
arr.flat(1)
//is the same as
arr.flat()
魔法
但其强大的功能远不止于此。我们只需一行代码就能展平整个数组。
var merged = arr.flat(2)
成为
[1, 2, 3, 4, 5, 6]
等待
我们甚至还获得了一个更棒的功能。假设我们不知道数组的深度,但我们想将其完全展平。
var merged = arr.flat(Infinity)
总之
这真是个奇迹!继续享受 ES2019 给我们带来的惊喜吧。
鏂囩珷鏉ユ簮锛�https://dev.to/laurieontech/demystifying-array-prototype-flat-gi9