#0
by Гений 1С
Граждане, больной вопрос. Есть ассоциативный массив: {1:"Иванов", 2:"Петров", 3:"Сидоров"} Т.е. массив кода человека и его фамилии. Нужно отсортировать по фамилии, ну а потом по кодам вытащить связную информацию. Если я заведу массив: Array("Иванов", "Петров", "Сидоров") я конечно отсортирую по фамилии, но из фамилии я не могу получить код, т.е. выгрузка в массив вопроса не решает. А ассоциативный массив не имеет метода сортировки. Неужели писать пузырек для ассоциативного? Может у кого готовый код есть по сортировке хэшей?
#4
by Слоняра
откуда ты такие слова умные берешь? "эстиматор, ассоциативный".. и проблемы из пальца высасываешь..
#6
by WiFi 2
можно и без пузырей обойтись. Заведи массив: Array("Иванов, 1", "Петров, 2", "Сидоров, 3", ... "Пупкин, 125"), Отсортируй и верни все как было ;)
#7
by Гений 1С
ну не знаю, из пальца или нет, код получился такой: <html> <head> <title>join</title> <SCRIPT language=JavaScript type=text/JavaScript> function HashSort(Hash, Field) { var Res=new Array; var TmpValues=new Array; var TmpKeys=new Array; var Weights=new Array; var counter=0; for (var HashKey in Hash) { TmpValues[counter]=Hash[HashKey][Field]; TmpKeys[counter]=HashKey; Weights[counter]=counter; counter++; } //Find position for item for (var i=0; i < counter; i++) { for (var j=i+1; j < counter; j++) { if (TmpValues[i] > TmpValues[j]) { Weights[i]++; Weights[j]--; } } Res[Weights[i]]=TmpKeys[i]; } return Res; } var n={ "Второй":{"ord":2}, "Первый":{"ord":1}, "Седьмой":{"ord":7}, "Шестой":{"ord":6}, "Четвертый":{"ord":4}, "Третий":{"ord":3}, "Пятый":{"ord":5}, "Восьмой":{"ord":8}, "Девятый":{"ord":9}, "Десятый":{"ord":10} }; function Dump(d,l) { if (l == null) l = 1; var s = ''; if (typeof(d) == "object") { s += typeof(d) + " { "; for (var k in d) { for (var i=0; i<l; i++) s += " "; s += k+": " + Dump(d[k],l+1); } for (var i=0; i<l-1; i++) s += " "; s += "}
" } else { s += "" + d + "
"; } return s; } document.write(Dump(n)); document.write("<HR>"); Res=HashSort(n, "ord"); document.write("" + Res.join(";")); </script> </head> </body> </html>
#10
by smaharbA
В перле возможно, в джскрипте никогда и не думал, проста пользовал многомерные массивы, но вот ведь правдо, а как ?
#13
by smaharbA
А зачем сортировать еще вопрос ? var ord=new Object; var nn=new Object; nn.Первый=ord; nn.Первый.ord=1; nn.Второй=ord; nn.Второй.ord=2; alert(nn.Второй.ord);
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Сортировка СпискаТабличного поля
- Журнал Документа - Реализация товаров и услуг, сортировка по контрагенту?
- Передать управление из JavaScript в 1С (с передачей параметра) в поле HTML
- Как подгрузить javascript после добавления ссылки на него AJAX-ом
- javascript в Поле HTML документа. Видимость функций javascript.
В этой группе 1С
- Как вычислить количество дней между датами.
- Иерархический журнал документов
- пропадают настройки принтера
- Список через запятую в список значений?
- Акт сверки
- Востановление настроек пользователей
- От программы 1С 7.7 осталься один ключ ... вопросы:
- интернет-трафик с 1С базами данных
- Ошибка при выполнении сервера-приложения 0x80080005
- Качественная аттестация программистов 1С
- Групповое изменение цены в торговле 7.7
- Привязка размеров товаров к справочнику номенклатуры.
- Как открыть 2 экземпляра одного и того же отчета ?
- УПП. Заполнение док Акт об оказании производственных услуг
- Приписать дату к имени файла автоматически
- Как получить список установленных шрифтов Windows?
- Округление числа
- Как выбрать записи из регистра только по документу реализация?
- Условие на субконто в запросе по таблице плана счетов
- НайтиДокумент() - недопустимая операция