Search code examples
javascripthtmlhtml2canvas

Uncaught (in promise) RangeError: Maximum call stack size exceeded in HTML2Canvas


How can i solve this problem ?

function flatten(arrays) {
    return [].concat.apply([], arrays);
}


Uncaught (in promise) RangeError: Maximum call stack size exceeded
at flatten (html2canvas.js:2650)
at new NodeParser (html2canvas.js:1861)
at renderWindow (html2canvas.js:1019)
at html2canvas.js:1006
at <anonymous>

Please help


Solution

  • You probably passed a large number of arrays into the function. You can try something like this instead:

    function flatten(arrays){
        return arrays.reduce(function(prev, curr){
            return prev.concat(curr);
        }, []);
    }
    
    var matrix = [
        [1, 2],
        [3, 4]
    ];
    flatten(matrix);    // [1, 2, 3, 4]