【发布时间】:2017-07-26 04:07:50
【问题描述】:
我有 js 函数来查找二维数组中的最小值和最大值,这在小数组上工作正常,但是当我将它传递给大数组时,它给了我range error:
超过最大调用堆栈大小。
我使用的是最新版本的 Chrome。
function MaxMin2dray(arr, idx){
return {
min: Math.min.apply(null, arr.map(function (e) { return e[idx]})),
max: Math.max.apply(null, arr.map(function (e) { return e[idx]}))
}
}
【问题讨论】:
-
Function.prototype.apply 只能接收有限长度的数组作为其第二个参数。您应该手动找到最小值和最大值
-
至少,你可以优化你的函数,去掉同一个数组上多余的 Array.prototype.map() 函数调用
-
更准确的说:每个参数都占用栈空间,给任何函数传递太多参数都会导致栈溢出。
-
big array- 不错,chrome only 最多可以处理 125519 - 其他浏览器最多可以处理 4 倍
标签: javascript arrays