Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Сортировка входных данных JS |
Автор: sortMePlease 4.8.2013, 16:35 |
Приветствую всех. Прошу помочь мне с обработкой входных данных и в дальнейшем с сортировкой. Есть задание: у меня есть катрочки (много), на каждой из них написано по две страны (пункт прибытия/отправки), например: 1) Турция - Монголия; 2) Китай - ЮАР; 3) ЮАР - Турция; 4) Россия - Китай, и т.д. Т.е. я не знаю начальный и конечный пункт (список в целом неразрывный), но в итоге, методом сортировки, получить следующее: Россия - Китай Китай - ЮАР ЮАР- Турция Турция - Монголия Я бы хотел рассмотреть ситуацию, когда мы вводим данные через метод prompt, например: вводим (Россия - Китай) и вводим слова-связки (страны) до тех пор пока не закрываем окно ввода. Только возникает следующие вопросы: 1) Каким образом я должен хранить вводимые данные: создавать в цикле новые переменные или один массив, в который будут добавляся элементы, а дальше сравнивать их? 2) Ну и сортировка, думаю, что сортировать надо по всей длине слова, а не по первым буквам, иначе при вводе стран могут быть и ситуации, когда мы можем ввести Монголию, Малайзию и прочие страны начинающиеся с одинаковой буквы. |
Автор: sortMePlease 4.8.2013, 22:11 |
Хоть идейку подкинте) |
Автор: CruorVult 5.8.2013, 08:25 |
1) ничерта не понял 2) метод Array.sort адекватно сортирует по всем символам |
Автор: CruorVult 5.8.2013, 13:24 |
Если данных много, то хранить их нужно в массиве! |
Автор: sortMePlease 5.8.2013, 13:34 | ||
То есть создаем цикл, в котором будет обновляться содержимое массива? Можешь пример кода скинуть? |
Автор: CruorVult 5.8.2013, 13:54 | ||
Повторюсь Я не зря это написал. Сформулируй конкретно вопрос без всяких там карточек и промптов. Какие входящие данные, какие действия нужно произвести и что должно получиться в итоге. |
Автор: sortMePlease 5.8.2013, 15:58 |
В целом нужно рассортировать данный список: 1) Турция - Монголия; 2) Китай - ЮАР; 3) ЮАР - Турция; 4) Россия - Китай, и т.д. И получить: Россия - Китай Китай - ЮАР ЮАР- Турция Турция - Монголия Желательно получить сортировщик, работающий с любым количеством слов-связок (страны), если все они (слова-связки) образуют одну неразрывную цепочку. ![]() |
Автор: akizelokro 6.8.2013, 17:27 | ||
Перебором
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51fe58c36ccc19695b000002#findElement_E7045_520107c86ccc19da1c003346_0 |
Автор: akizelokro 6.8.2013, 17:28 |
В тонкостях разберёшься. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51fe58c36ccc19695b000002#findElement_E7045_520107f46ccc19e64c0020de_0 |
Автор: CruorVult 6.8.2013, 19:09 | ||||
Использование
П.С. Если цепочка будет некорректная, то не исключено зацикливание |
Автор: sortMePlease 6.8.2013, 21:34 | ||||||
Прокомментируй пожалуйста этот кусок, просто я понмаю это как: если "НЕ" длина массива map, то...
Здесь я пытаюсь вывести выходной массив arr, однако он выдал следущее:Турция,Монголия,Китай,ЮАР,ЮАР,Турция.
|
Автор: CruorVult 7.8.2013, 11:45 | ||||||
Что это ![]()
Я не понимаю, что тебе еще не ясно. Я написал метод, который формирует нужный массив. Все что тебе нужно сделать самому, так это вывести полученные данные любым возможным способом. Если ты и этого сделать не можешь, то прежде чем приступать к решениям таких задач нужно час-другой потратить на освоения основ языка. |
Автор: sortMePlease 7.8.2013, 13:49 |
CruorVult, благодарю. Прости за тупизм, сейчас разобрался. На счет тернарных операторов: по мере программирования в js почти не сталкивался с ними. Еще раз спасибо всем, кто участвовал. |
Автор: skyboy 8.8.2013, 00:28 |
конкретный алгоритм не подскажу, но искать надо "поиск цикла в графе". если у тебя не обязательно все элементы использовать, чтоб найти цикл — это лучше перебора. если у тебя много элементов — это лучше перебора. если у тебя есть разветвления — когда из одной страны несколько вариантов — это надежней перебора. в любом другом случае, понятно, перебор — вполне справится с задачей ) |