Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 11.01.2016, 15:25
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

laimas,
Этот файл берётся отсюда: Помогите с заданием пожалуйста!
Это просто какое-то тестовое задание, я его взял чисто в учебных целях. Пытаюсь по минимуму изменять исходные файлы, просто делаю "в лоб": не меняя исходников, не применяя никаких библиотек - только нативный JS
Ответить с цитированием
  #22 (permalink)  
Старый 11.01.2016, 15:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от laimas
На сервере функций пересечения массивов хоть отбавляй, что позволяет сделать нужный порядок в любой ситуации и это плевое дело
либо вы предлагаите заменить обьект на массивы либо я вас не понимаю.
Ответить с цитированием
  #23 (permalink)  
Старый 11.01.2016, 15:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

В чем смысл этих заданий? Решать задачи, это ведь не только умение что-то использовать, но умение ответить себе, целесообразно ли это делать на клиенте? Ведь в реалии это будет файл с сервера, а значит выгоднее привести к порядку на нем, клиенту же только сформировать таблицу.
Может более полезную задачу решать? К примеру, есть N таблиц, данные которых нужно не только выводить, но и редактировать. А колонок у таблицы может быть много, что и неудобно для отображения, да и не обязательно нужны все при просмотре. Вот и напишите на клиенте управление: выбор необходимых для вывода колонок, выбор параметров фильтра для колонок, порядка сортировки. При этом параметры фильтра и сортировки зависят от типа данных полей базы, данные из которой и будут браться. Установки выбранные в управлении сохраняются на клиенте, а также можно сохранять пресеты.
Тут тоже придется изменять порядок свойств объекта, но это и оправдано, и пригодится.

Последний раз редактировалось laimas, 11.01.2016 в 16:09.
Ответить с цитированием
  #24 (permalink)  
Старый 11.01.2016, 15:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
либо вы предлагаите заменить обьект на массивы либо я вас не понимаю
Все зависит от того каковы исходные данные, если это JSON, то по умолчанию декодирование его и вернет объект, перестроить порядок элементов которого можно и обычным циклом. Можно при декодировании получить не объект, а обычный массив, а можно проще, перезаписывать значения объявленного массива с нужным порядком ключей (порядок их в исходном роли не играет) каждым вложением объекта сконвертированного в массив, сохраняя в текущий массив (модификация) или новый.
Ответить с цитированием
  #25 (permalink)  
Старый 11.01.2016, 16:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

laimas,
понятно что лучше упорядочить данные на сервере, но как, я так и не понял, что вы предлагаите.
Ответить с цитированием
  #26 (permalink)  
Старый 11.01.2016, 16:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Пусть исходное это объект, хотя на сервере все проще, достаточно указать true вторым параметром при декодировании json и результат будет массив. Далее каждое вложение сохранять как array_replace([a=>1, b=>1, c=>1, ...], array), где первый аргумент функции массив с нужными ключами и порядком их, второй аргумент, это каждое вложение исходного массива.
Полученный массив в json и сохранить.
Ответить с цитированием
  #27 (permalink)  
Старый 11.01.2016, 16:34
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Сообщение от laimas Посмотреть сообщение
В чем смысл этих заданий? Решать задачи, это ведь не только умение что-то использовать, но умение ответить себе, целесообразно ли это делать на клиенте? Ведь в реалии это будет файл с сервера, а значит выгоднее привести к порядку на нем, клиенту же только сформировать таблицу.
Это их из серии: "в чём смысл учить химию, физику, биологию, .... и т.д. в школе?" Ведь в реалии есть Гугл - а значит выгоднее там искать все ответы на любые вопросы.

Я это делаю для закрепления теоретических знаний и для "набития" руки, это мой подход к обучению: прочитал, осознал/разобрался, сделал!
Ответить с цитированием
  #28 (permalink)  
Старый 11.01.2016, 16:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Да уж... Это из серии когда в учебных заведениях дают задания, от которых ни пользы, ни проку.
Обучение, это в первую очередь научиться размышлять. Вы хотите писать веб приложения, а это приложение из двух частей, одна на сервере, вторая у клиента, но работать они должны как единое целое. Если сервер будет отдавать клиенту неподходящие данные, то это неизбежно повлечет за собой неоправданные действия на клиенте, и наоборот, неудачный запрос клиента, слезы для сервера.
Я могу дать ссылки на темы с этого форума, где вопрошающий даже знает предмет, то есть то, что он использует в коде, но при этом совсем не понимает того, что шлет серверу совсем не потребное.
Есть и к теме "перековырять 60000 элементов на клиенте", совсем недавно, и даже наводящие вопросы не помогают, не понимает человек, что он фактически, будучи торговцем в реалии, покупал бы некий сорт помидоров не для продажи, а исключительно только для того, чтобы их тара служила подставкой для ящиков других сортов. Абсурд? Конечно. Но почему этот абсурд допустим когда решаем программную задачу?
Для того чтобы понять вкусен или нет суп, совсем не обязательно съесть всю его кастрюлю. Вы же ради уяснения "как", гоняете нехилый файл, да еще уточняя для тех кто вам отвечает - 10 000 строк.
Можно выучить наизусть все функции и конструкции языка, быть примерным кодером, не делая даже малейших ошибок в синтаксисе и прочем, но при этом так и не научиться все это использовать.

Последний раз редактировалось laimas, 11.01.2016 в 16:52.
Ответить с цитированием
  #29 (permalink)  
Старый 11.01.2016, 16:57
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

laimas,
Есть хорошее выражение: слона надо кушать по частям. для меня сейчас первостепенно изучить фронт-энд разработку. в серверной реализацией буду знакомиться позднее. не вижу ничего плохого в решении разных задач, пусть даже и не совсем практичных. Если следовать вашей логике - тогда всё можно делать на сервере и передавать в клиент "конфетку".
Ответить с цитированием
  #30 (permalink)  
Старый 11.01.2016, 17:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну да, и чтобы понять это нужно обязательно?

Сообщение от Keramet
массив большой: ordersList.length > 10 000
А что тогда скупиться, да сразу 1 000 000, для усвояемости?

У меня же именно после этого вашего уточнения и возник вопрос - "а нахрена?"
Хотите поиметь от этого объема пользы? Ну так тогда и задача должна выглядеть иначе - как оптимизировать? Вам не приходило в голову, что обходить массив можно с двух его краев? Глядишь и польза была бы от бессмысленной задачи для клиента.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов свойств объектов из массива или объекта с параметрами Sanu0074 jQuery 4 22.05.2015 10:18
Поиск в массиве объектов desperado Общие вопросы Javascript 1 26.02.2015 12:34
Поиск объектов в массиве Lynatik Общие вопросы Javascript 24 22.06.2013 12:43
порядок сортировки в массиве изменяется. DarkGuy AJAX и COMET 2 20.05.2013 15:50
Изменить порядок элементов sunlord jQuery 2 04.02.2012 16:38