老师为什么我会报错?
来源:11-6 JavaScript 实现:快速排序

qq_慕运维6460539
2021-07-29
我照着视频敲得代码,执行后报错“超出最大调用堆栈大小"”,这是为什么:
4回答
-
纯情掉了一地
2021-09-10
left 或者 right 数组长度可能会为 0 ,所以
```jsif(arr.length === 1) return arr
需要改成
if(arr.length < 2) return arr```
512021-10-15 -
dist
2021-09-10
Array.prototype.quickSort = function () {
const rec = (arr) => {
if (arr.length < 2) {
return arr;
}
const left = [];
const right = [];
const mid = arr[0];
for (let i = 1; i < arr.length; i++) {
if (arr[i] < mid) {
left.push(arr[i])
} else {
right.push(arr[i]);
}
}
return [...rec(left), mid, ...rec(right)];
}
const res = rec(this);
res.forEach((n, i) => {
this[i] = n
});
return res;
}
const arr = [2, 3, 99, 5, 6];
let sortArr=arr.quickSort();
console.log(sortArr);
10 -
lewis
2021-10-15
在循环处加一个debugger,断点调试一下
00 -
lewis
2021-07-29
出现了死循环,你在所有循环处加一个断点看看
032021-10-15
相似问题