powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Vue js: сортировка массива по полю
18 сообщений из 18, страница 1 из 1
Vue js: сортировка массива по полю
    #39928004
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Почему следующий код не сортирует по полю 'name'?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<!DOCTYPE html>
<html>

<head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <div v-for="user in mySort(users)">
            {{ user.name }} - {{user.position}}
        </div>
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                users: [
                    { name: "Michael", position: 4 },
                    { name: "Dwight", position: 1 },
                    { name: "Jim", position: 9 },
                    { name: "Pam", position: 3 },
                    { name: "Andy", position: 2 }
                ]
            },
            methods: {
                mySort: function (arr) {
                    return arr.slice().sort((a, b) => a.name - b.name);
                }
            }
        });
    </script>
</body>
</html>


Результат:
Код: html
1.
2.
3.
4.
5.
Michael - 4
Dwight - 1
Jim - 9
Pam - 3
Andy - 2
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928021
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось отсортировать так:
Код: html
1.
2.
3.
4.
5.
mySort: function (arr) {
    return arr.slice().sort(function (a, b) {
        return a.name > b.name ?  1 : -1
   });
}



Не понятно почему. Первый вариант работает, когда в массиве есть только перечисление одного свойства, без ключа.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928050
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

а если mySort перенести из methods в computed ?

И на всякий случай таблица с поиском и сортировкой, может чего возьмёте нв вооружение...
https://jsfiddle.net/vo1phqut/
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928092
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUser
Molasar,

а если mySort перенести из methods в computed ?

И на всякий случай таблица с поиском и сортировкой, может чего возьмёте нв вооружение...
https://jsfiddle.net/vo1phqut/
оно конешно красиво и прочее, но вот только когда в таблице 4-9 тысяч строк. и все их гнать в браузер чтоб сортировать? и искать ?
а потом вопросы откуда сливаются данные....
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928095
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

в моём учебном примере 10 тыс. записей не тормозит :)
Кто знает, что надо в реальности...
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928108
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUser
в моём учебном примере 10 тыс. записей не тормозит :)
Кто знает, что надо в реальности...
я не говорю о тормозах.
вопрос о том зачем гнать все данные клиенту в готовом виде для копирования и распространения?
а если что-то изменилось в этих 10к данных? что перезагружать их все?
а нужны ли они все клиенту? зачем такой трафик? да и кто будет просматривать их глазами?
а если их миллионы?
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928265
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
SQLPowerUser
в моём учебном примере 10 тыс. записей не тормозит :)
Кто знает, что надо в реальности...
я не говорю о тормозах.
вопрос о том зачем гнать все данные клиенту в готовом виде для копирования и распространения?
а если что-то изменилось в этих 10к данных? что перезагружать их все?
а нужны ли они все клиенту? зачем такой трафик? да и кто будет просматривать их глазами?
а если их миллионы?
Затем, чтобы чему-то научиться. Пример УЧЕБНЫЙ.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928274
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
оно конешно красиво и прочее, но вот только когда в таблице 4-9 тысяч строк. и все их гнать в браузер чтоб сортировать? и искать ?

Не вижу в этом никаких проблем. Гонял на ноде и больше.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928275
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
вопрос о том зачем гнать все данные клиенту в готовом виде для копирования и распространения?

Не ко всем клиентам относятся как к отбросам.
вадя
а если что-то изменилось в этих 10к данных? что перезагружать их все?

Нет, только невалидные, конечно.
вадя
а нужны ли они все клиенту?

Если он там что-то сортирует и ищет, то, наверное, нужны.
вадя
а если их миллионы?

А это уже отдельный вопрос.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928278
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
зачем такой трафик?

На фоне всяких картинок и бандлов с либами это - не трафик.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928281
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
вадя
оно конешно красиво и прочее, но вот только когда в таблице 4-9 тысяч строк. и все их гнать в браузер чтоб сортировать? и искать ?

Не вижу в этом никаких проблем. Гонял на ноде и больше.

Вопрос не на чем гонял, а куда гонял.
Какая скорость у клиента? Сколько запросов в минуту у сервера?....
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928282
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
вадя
зачем такой трафик?

На фоне всяких картинок и бандлов с либами это - не трафик.

Картинки и либы кешируются у клиента. А данные каждый раз новые.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928321
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Не ко всем клиентам относятся как к отбросам.
это верго , но где 100% уверенность?
crutchmaster
Нет, только невалидные, конечно.
валидными могут быть и 10 000 000
crutchmaster
Если он там что-то сортирует и ищет, то, наверное, нужны.
он просто ищет нужное
тут ведь ещё есть вопрос про нагрузку на сервер - получить из базы 10 000 и их отправить для сервера намного больше нагрузки чем выбрать 100 и отправить.
и произвести выборку и отправку 100 записей 20 раз - намного дешевле чем 10 000 за один раз.

Antonariy
Затем, чтобы чему-то научиться. Пример УЧЕБНЫЙ.
только это и может быть оправданием.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928351
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
акая скорость у клиента? Сколько запросов в минуту у сервера?

Воу, воу полегче.
voraa
Картинки и либы кешируются у клиента. А данные каждый раз новые.

Ну не факт, что данные каждый раз новые. А сейчас на клиенте можно и данные хранить.

вадя
но где 100% уверенность?

Ну если ресурс внутрекорпоративный и сливайте ради бога, только в техотдел не звоните.

вадя
валидными могут быть и 10 000 000

Про 10М - отдельный разговор. У нас есть, например, приём платежей квартплаты и список улиц/домов/квартир города. Зачем каждый раз лазить за этим добром в базу, если клиент это всё легко сожрет и не подавится?

вадя
тут ведь ещё есть вопрос про нагрузку на сервер - получить из базы 10 000

Зачем? Наборы данных можно так же кешировать где-то на стороне сервера.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928385
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster

Ну не факт, что данные каждый раз новые. А сейчас на клиенте можно и данные хранить.

IndexDB городить не всегда удобно
А localstorage имеет ограниченный объем

На то и база данных, что в нее постоянно что то вводят и меняют. Поэтому приходится исходить из того, что данные каждый раз могут новые. Ну или на каждую запись вешать поле с датой создания/изменения
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928726
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voraa
IndexDB городить не всегда удобно

Для чего городить опять же. Одно дело горячие данные какие-то синхронизировать, а другое дело, которые меняются раз в год.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928798
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Для чего городить опять же. Одно дело горячие данные какие-то синхронизировать, а другое дело, которые меняются раз в год.
опять таки - это попытка эмулировать субд.
в конечном итоге к ничему толковому не приводит.
знать и уметь - это хорошо, но ставить на такое - не правильно.
...
Рейтинг: 0 / 0
Vue js: сортировка массива по полю
    #39928810
voraa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
voraa
IndexDB городить не всегда удобно

а другое дело, которые меняются раз в год.

Осталось только клиенту сообщить, когда и что он должен обновлять.
Ну или клиент должен каждые N сек (или перед каждым запросом) спрашивать сервер, не обновилось ли именно сейчас
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Vue js: сортировка массива по полю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]