计算数组最大值的"JavaScriptonic"方法是:
Math.max.apply(null, array)
Run Code Online (Sandbox Code Playgroud)
但是,在大小为2 ^ 16(Chrome,Safari)或2 ^ 18(Firefox)的阵列上出现"超出最大调用堆栈大小"的错误.见https://jsfiddle.net/dxcot206/
我怎样才能安全地使用这种技术?是否有最大的阵列长度可以保证这种技术有效?
在WebWorker中,答案可能会有所不同,因为后台线程通常具有较小的堆栈大小?
我怎样才能安全地使用这种技术?
一点也不.
是否有最大的阵列长度可以保证这种技术有效?
不,规范中没有对此类内容的要求,您所看到的都是依赖于实现的" 我们不支持上面不合理的大型参数列表N "限制.
计算数组最大值的"JavaScriptonic"方法是:
Math.max.apply(null, array)
它只是短暂的,但效率不高,而且你所看到的可能不起作用.更好用array.reduce((a, b) => Math.max(a, b)).