Как организовать быструю сортировку на JS со средним опорным элементом?
проблема может быть во многом.
начиная с того, что for (let i = 1; i < array.length; i++) {
теряет первый элемент массива.
заканчивая тем, что ваш pivot попадает в один из массивов и потом опять же участвует в их объединении
Несколько мелких ошибокfunction quickSort (array) {
	if (array.length <= 1) { // так понятнее
		return array;
	} else {
		let pivotIndex = Math.floor(array.length / 2); // так понятнее
		let pivot = array[pivotIndex];
		let less = [];
		let greater = []; // не объявляйте переменные через запятую

		for (let i = 0; i < array.length; i++) { // индексы элементов в массиве идут с нуля
			if (i === pivotIndex) continue; // опорный элмент нужно пропускать
			if (array[i] <= pivot) {
				less.push(array[i]);
			} else {
				greater.push(array[i]);
			}
		}
		let result = [];
		return result.concat(quickSort(less), pivot, quickSort(greater));
	}
}
console.log(quickSort([5,1,7,4,3])); // алерт?