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

Почему следующий код не сортирует по полю '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
18.02.2020, 15:24
    #39928021
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vue js: сортировка массива по полю
Получилось отсортировать так:
Код: 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
18.02.2020, 15:53
    #39928050
SQLPowerUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vue js: сортировка массива по полю
Molasar,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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