使用apply方法处理数组的三个技巧[译](2)


> 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()

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wddsxg.html