Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.05.2017, 13:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,137

denis82,
<script>
var models = {};
models[79] = [];

models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function() {
    // тут можно сортировать как вам нужно, если будет как структура выше
});
alert(models[79]);
</script>
Ответить с цитированием
  #12 (permalink)  
Старый 02.05.2017, 13:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,137

denis82,
<script>
var models = {};
models[79] = [];

models[79][0]= {'19709' : 'Creta'};
models[79][1]= {'19701' : 'Coupe'};
models[79][2]= {'19725': 'ix35'};
models[79].sort(function(a,b) {
  for(var k in a) a = k;
  for(var k in b) b = k;
  return a - b});
document.write(JSON.stringify(models[79]));
</script>
Ответить с цитированием
  #13 (permalink)  
Старый 02.05.2017, 18:35
Новичок на форуме
Отправить личное сообщение для denis82 Посмотреть профиль Найти все сообщения от denis82
 
Регистрация: 30.04.2017
Сообщений: 8

Да, спасибо, Рони, наверное так и нужно делать. Но как тогда потом на выходе получить такой формат:
models[79][19701] = 'Coupe';
models[79][19709] = 'Creta';
models[79][19725] = 'ix35';
Ответить с цитированием
  #14 (permalink)  
Старый 02.05.2017, 19:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,137

Сообщение от denis82
Но как тогда потом на выходе получить такой формат
никак
Ответить с цитированием
  #15 (permalink)  
Старый 02.05.2017, 19:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,137

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

Сообщение от denis82
наверное так и нужно делать
Данные откуда, кто их формирует в такую структуру? Если это данные из базы, то почему сразу запросом не отсортировать их?

Сообщение от denis82
на выходе получить такой формат
Для чего? Собственно так models[79][19701] и можно получить данные из объекта, а каков синтаксис его описания вам какая разница?
Ответить с цитированием
  #17 (permalink)  
Старый 03.05.2017, 17:19
Новичок на форуме
Отправить личное сообщение для denis82 Посмотреть профиль Найти все сообщения от denis82
 
Регистрация: 30.04.2017
Сообщений: 8

Данные сортируются на стороне клиента в браузере - зависимые списки: марка, модель, поколение, серия, модификация автомобилей. Марки сортирую из БД запросом, но остальные списки сортировать нужно на js. То есть выбрал марку, в зависимости от нее построился список моделей отсортированный по алфавиту с сохранением ключей, чтобы дальше при отправке на сервер передались нужные ключи. Есть скрипт, который управляет списками, подгружая нужный список в зависимости от выбранного, поэтому и желательно подстроить под него синтаксис. Как-то не думал что такие сложности с сортировкой возникнут. В js я совсем слаб, уж простите.
Ответить с цитированием
  #18 (permalink)  
Старый 03.05.2017, 17:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от denis82
То есть выбрал марку, в зависимости от нее построился список моделей отсортированный по алфавиту с сохранением ключей, чтобы дальше при отправке на сервер передались нужные ключи.
То есть если поля формы или иные данные отдаваемые клиентом серверу не будут сортированы, то сервер получит "ненужные ключи"? Что за глупость

Сообщение от denis82
Марки сортирую из БД запросом, но остальные списки сортировать нужно на js.
С чего вдруг если речь о зависимых списках? Даже если списки не получаются асинхронным запросом, а строятся уже по отданным клиенту данным, это же не мешает их заведомо отсортировать.
Ответить с цитированием
  #19 (permalink)  
Старый 03.05.2017, 19:31
Новичок на форуме
Отправить личное сообщение для denis82 Посмотреть профиль Найти все сообщения от denis82
 
Регистрация: 30.04.2017
Сообщений: 8

Имею в виду что если сделать сортировку, как я писал в первом посте, то ключи присвоятся по порядку: 0, 1, 2, 3 и т.д.

Я пробовал сортировать заранее при выводе данных из базы, сортируется корректно, но после этого
models[<?php echo $id_brand; ?>][<?php echo $k; ?>] = '<?php echo $v; ?>';
в поле select сортировка как будто игнорируется. Вот почему и стал думать как корректно сортировать массив на js. Не могу понять почему сортировка слетает.

foreach ($array2 as $k=>$v) {
$title_model = $v;
$id_model = $k;
?>
models[<?php echo $id_brand; ?>][<?php echo $id_model; ?>] = '<?php echo $title_model; ?>';
<?php
}
Ответить с цитированием
  #20 (permalink)  
Старый 03.05.2017, 19:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,137

denis82,
ещё раз: на выходе у вас разреженный массив -- при сортировке -- все значения сдвигаются к началу массива - ключи в данном случае не ключи, а индексы массива -- нужны ключи => делайте обьект -- но обьект невозможно отсортировать, но можно как угодно извлечь данные.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пройтись циклом по объекту с сохранением порядка ключей Котзилла Общие вопросы Javascript 3 21.04.2015 20:33
Сортировка массива по возрастанию другого массива. vas88811 Events/DOM/Window 4 12.01.2014 10:31
Сортировка массива по ключу RazZzeR Элементы интерфейса 9 21.07.2012 19:31
Сортировка двумерного массива методом пузырька lammeR Общие вопросы Javascript 31 01.07.2012 20:48
сортировка массива с сохранением ассоциации индексов HelpeR Элементы интерфейса 1 24.02.2010 11:00