Javascript js中的concat替代方法是什么

Javascript js中的concat替代方法是什么,javascript,html2canvas,Javascript,Html2canvas,我的函数flant 代码如下: function flatten(arrays) { return [].concat.apply([], arrays); } 有一个max except错误,因此我尝试将函数更改为: function flatten(arrays){ return arrays.reduce(function(prev, curr){ return prev.concat(curr); }, []); } 错误消失了

我的函数
flant

代码如下:

    function flatten(arrays) {
    return [].concat.apply([], arrays);
}
有一个max except错误,因此我尝试将函数更改为:

    function flatten(arrays){
    return arrays.reduce(function(prev, curr){
        return prev.concat(curr);
    }, []);
}

错误消失了,但太慢了。concat是否有其他代码。

尝试以下ES6扩展语法:

const array1 = [1,2,3]
const array2 = [4,5,6]
const array3 = [...array1, ...array2]
console.log(array3)

此答案不适用于子数组。最大超出多少?参数是否太多,或者连接的数组是否太大?您想要什么?是否要将多维数组转换为一维数组?可能需要研究如何使用下划线的
展平
。看见这三个方面都有更好的表现。JSPerf:flatte函数似乎可以处理多达10000个数组元素(Safari、Chrome、Firefox)。ECMA-262中的参数数量没有限制,在什么情况下会得到最大值?如果您想节省一些时间来实现它。尝试使用lodash之类的库有一种称为flattedeep u0.flattedeep(youArray)的方法;