@Artemio95

Как при сортировке отображать неотсортированный массив?

Есть код:
computed: {
        sorted() {
            const compare = (a, b) => {
                if (sortingType === '2') {
                    return b.name- a.name
                }
                if (sortingType === '3') {
                    return a.name- b.name
                }
                return 0;
            };
            return this.arr.sort(compare);
        }
    },

Пользователь из списка выбирает вид сортировки - 2, 3 или без сортировки. Проблема в том, что когда выбирается без сортировки, computed берет уже отсортированный массив и не приводит к изначальному виду. Как решить проблему?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
return this.arr.sort(...

Что делает метод sort:

Метод sort() на месте сортирует элементы массива

копия массива не создаётся

То есть, выполнили сортировку - потеряли исходное состояние массива.

Делайте внутри вычисляемого свойства копию массива, и сортируйте её. А когда нужны данные в неотсортированном виде, ничего не делайте, просто возвращайте массив, как он есть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы