JS;有人可以纠正我的快速排序功能吗?

使用递归调用仍然很困难。 我的函数超出了最大调用堆栈。有什么帮助吗?

function quickSort(arr) {
    let n = arr[arr.length-1];
    const inf = [];
    const sup = [];
    for(let i = 0; i<arr.length; i++){
        if(arr[i]<= n){inf.push(arr[i])}
        else(sup.push(arr[i]));
    }
    if(inf.length === 1 && sup.length === 1){
        return inf.concat(sup)
    }else if(inf.length === 1 && sup.length > 1){
        quickSort(sup);
        return inf.concat(sup)
    }else if(inf.length > 1 && sup.length === 1){
        quickSort(inf);
        return inf.concat(sup)
    }else{
        quickSort(inf);
        quickSort(sup);
        return inf.concat(sup)
    }
  }

谢谢。