旧规则,首先开始问题,然后考虑问题:
数组的平坦度实际上是将嵌套的多层阵列(嵌套可以是任何一层)转换为唯一的数组层。对于一个简单的示例,假设可以扁平的函数,则该效果如图所示。以下代码。
实际上,多维阵列“平坦”并输出最终的一个维数组。
普通的递归想法很容易理解,即通过递归方法,一一逐一遍历。如果每个项目仍然是一个数组,则继续遍历并使用递归过程的方法来实现项目的每个数组。
从上面的代码中可以看出,最终结果是固定度的结果。该代码的核心是回收过程中的递归操作。结果通过数组方法缝合到要返回的最后一个数组,因此最终输出的结果是平面阵列。
从上面的共同递归函数可以看出,它实际上是对数组的每个项目进行处理的,因此我们实际上可以使用令人眼花and aray api所说的内容来实现数组的缝线,从而简化了第一个方法的第一个方法,代码的第一个方法代码如下所示。
执行控制台后,此代码也可以得到所需的结果。在这里,您可以回忆到前面提到的参数。我们可以看到的第一个参数用于返回最后一个累积添加的结果。这个想法与第一个递归方法相同,但是使用后代码变得更简单。它也解决了平坦的问题。
该方法的实现采用了扩展运算符的方法。两者通常用于实现阵列平坦的目的。让我们看一下代码。
从执行的结果中,我们可以发现我们首先要滤除数组方法中数组的数量,然后执行操作,然后使用操作操作员将其缝合到预期效果。
实施阵列的前三种方法实际上是最基本的想法。它们是通过最常见的递归想法得出的,尤其是前两个实现相似。值得注意的是,该方法可以在许多应用程序方案中实现。由于此方法提供的几个参数更加灵活并且可以解决许多问题,因此值得使用和熟练。
我们还可以使用两种方法共同实现阵列平面。由于数组将默认情况下带来一种方法,因此我们可以将数组直接转换为逗号分隔字符串,然后使用该方法将字符串重新转换为阵列。如以下代码所示。
通过这两种方法,您可以将多维数组直接转换为逗号连接的字符串,然后恢复到数组中
我们还可以直接调用该方法,该方法可以直接实现阵列平面。LET首先对该方法的语法来看:
arr.flat([[Depth])
参数可以传递数组的深度(默认值未填充,值为),即展开一层数组。那么,如果处理多层层?也可以传递参数,该怎么办?这意味着无论多层都必须扩展。
可以看出,已经嵌套了两个层级阵列,并且该方法的参数设置为实现我们的期望的效果。实际上,它也可以设置并可以实现此效果。
因此,在编程过程中,当不确定阵列的嵌套层的数量时,最好直接使用它以达到平坦。
在第四种方法中,已经尝试了该方法,该方法仍用于首先将其转换为字符串,然后通过正则表达式中的数组中的数组中滤除数组括号,最后使用它来转换它进入数组。请参见以下代码。
可以看出,首先将数组的输入转换为字符串,然后通过正则表达式过滤括号。如果您不了解此正则表达式,则可以查看下面的图片。
通过此在线网站https://regexper.com/,您可以定期分析作为一个简单的理解逻辑逻辑脑图。我们可以看到,匹配规则是:全局匹配(g)左支架或右括号或右侧支架括号,用空格替换它们,最后在处理后返回结果。后来,常规处理的结果被重新包装在外层的括号中,最后转换为阵列并返回。
阵列的知识点使本课扁平化结合了数组的相关知识,方法可以通过下表查看这六种方法的代码想法。
递归实现很容易恢复,并且累积的操作扩展操作员用于实现新数组实现。在回到流程的过程中,在每日前端 - 端 - 开发工作中,您经常遇到各种数组问题在业务发展过程中,因此您必须考虑最合适的解决方案。实际上,扁平化只是一种美分之一,还有许多其他相关的知识点涉及数组。