Предположим, у меня есть простой массив
const simpleArray = [1, 2, 3, 4, 5];
В случае, например, я хочу создать карусель и соединить точки, чтобы щелкнуть события в Vue или React. Таким образом, нажав на точку, я хочу отсортировать массив так, чтобы первым слайдом был слайд с индексом точки. Следовательно, если индекс точки равен 3 - мой массив должен выглядеть следующим образом
const updatedSimpleArray = [3, 4, 5, 1, 2];
С этой идеей я пришел к выводу о создании этого метода.
const sortedArray = (pos) => {
// pos is the dot index of the dot
// if index is 1 - simply sort the array
if ( pos == 1 ) return arr.sort();
// otherwise - create two separate arrays and concat them
const firstArr = arr.filter(el => el >= pos);
const secondArr = arr.filter(el => el < pos);
const newArr = [...firstArr, ...secondArr];
return newArr;
}
Чтовы думаете о моем подходе и сложности времени / памяти? Вы бы использовали другой подход?
РЕДАКТИРОВАТЬ
Есть проблема, если мой массив не отсортирован. Если это выглядит так
const array = [4, 5, 1, 2, 3]
Вся функция работает неправильно. Мои мысли - сначала отсортировать, а затем фильтровать / склеивать по заданному индексу?