gpt4 book ai didi

javascript - Node.js 中的日期数组 - 我有错误 : RangeError: Maximum call stack size exceeded

转载 作者:行者123 更新时间:2023-12-03 00:38:43 27 4
gpt4 key购买 nike

你能帮我让这段代码适用于超过 100k 的条目吗?

  var maxDate = new Date(Math.max.apply(null, dates));
var minDate = new Date(Math.min.apply(null, dates));

目前我遇到此错误 RangeError:超出最大调用堆栈大小。

感谢您的帮助

最佳答案

我认为这是一个递归问题。递归中使用的堆栈似乎有最大大小,这就是为什么 Math.min 和 Math.max 对于大数组最有可能崩溃的原因,因为它们都是递归操作。

相反,您可以使用旧的 JavaScript 循环,如下所示:

function getMax(arr) {
return arr.reduce((max, v) => max >= v ? max : v, -Infinity);
}

或者

function getMax(arr) {
let len = arr.length;
let max = -Infinity;

while (len--) {
max = arr[len] > max ? arr[len] : max;
}
return max;
}

(第二个要快得多)

关于javascript - Node.js 中的日期数组 - 我有错误 : RangeError: Maximum call stack size exceeded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53555108/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com