假设我有一个函数,可以遍历数组...
我该如何在不修改数组的情况下检测到这种行为,以便函数能够处理它?
flatten([a, b, c, d, [e, f, g, [h, i, j, k], l], m, n, o, p])
>> [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p]
Flatten会遍历代码,对于每个遇到的数组,它将递归地进入该数组并返回值,以便您获得一个扁平的数组。
这种方法适用于以下情况:
a = [];
a[0] = a;
这会导致无限递归:
Array[1]
0: Array[1]
0: Array[1]
0: Array[1]
0: Array[1]
0: Array[1]
0: Array[1]
...
我该如何在不修改数组的情况下检测到这种行为,以便函数能够处理它?