> Array.prototype.concat.apply([], [["a"], "b"])
[ 'a', 'b' ]
apply方法的thisValue必须指定为[],因为concat是一个数组的方法,不是一个独立的函数.这种写法的限制是最多只能扁平化二阶数组:
复制代码 代码如下:
> Array.prototype.concat.apply([], [[["a"]], ["b"]])
[ [ 'a' ], 'b' ]
所以你应该考虑一个替代方案.比如Underscore中的函数就可以处理任意层数的嵌套数组:
复制代码 代码如下:
> _.flatten([[["a"]], ["b"]])
[ 'a', 'b' ]
参考
JavaScript: sparse arrays vs. dense arrays
ECMAScript.next: Array.from() and Array.of()
您可能感兴趣的文章: