Сортировка

Статус
Закрыто для дальнейших ответов.

Positive_fun

Well-Known Member
Регистрация
28.03.2012
Сообщения
64
Прошу помочь с такой задачей:
Делаю программу по криптосистема по шифровке и дешифровке данных и столкнулся с такой проблемой которую не удается решить. Суть проблемы в том что есть строка-ключ ‘Задача’ и мне нужно с этой строки сделать массив чтоб в конце его можно было отсортировать по алфавиту но проблема в том что в этом слове 3 буквы ‘а’ и получается результат не тот что нужен потому что
я создаю свойство объекта с именем которое соответствует элементу массива с этой строки то есть символу, которое содержит нужную мне информацию, но когда встречается вторая буква А оно перезаписывает то свойство которое уже было создано потому что буква А уже встречалась и такое свойство уже есть. И нужен массив похож на [з, а1, д, а2, ч, а3] чтоб потом вышло [а1, а2, а3, д, з, ч],
или что то похожее чтоб буквы которые повторяются они были уникальными и сортировались потом правильно в том порядке в котором были добавлены. Сам пробовал не получается ничего придумать,
перебирал несколькими циклами на соответствие но все что то не так то условие не выполняется по сравнению то еще что то.
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Я бы к букве добавлял еще индекс -- номер буквы в слове. слово "Задача" представляем как ['З_0', 'а_1', 'д_2', 'а_3', 'ч_4', 'а_5']. Это обеспечит уникальность и не повлияет на сотрировку.
Правда потребуется функция для извлечения буквы из такой записи. Т.е.:
Код:
//что бы получить элемент массива будем писать не: 
var l = letters[0];

// а как-то так:
val l = getLetter(0);

//ну и сама функция
function getLetter(i)
{
 //TODO: убедиться, что i это число и оно не больше, чем кол-во элементов в нашем массиве

  var l = letters[i].split('_');
  return l[0];
}
 

Positive_fun

Well-Known Member
Регистрация
28.03.2012
Сообщения
64
Спасибо большое, мне это помогло, иногда решение задачи совсем не сложное но решение почему то не приходит в голову, в то время как в голове есть решения других более сложных.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ