Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Робота с масивом (https://javascript.ru/forum/misc/31968-robota-s-masivom.html)

Positive_fun 27.09.2012 21:24

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

Aetae 27.09.2012 21:29

Не, ничего непонятно.

Единственное что:
Цитата:

я создаю свойство объекта с именем которое соответствует элементу
так не используйте свойства объекта, в чём проблема то?

lord2kim 27.09.2012 21:41

Positive_fun,
var str = "задача".split("");
alert(str.sort());

Positive_fun 27.09.2012 21:46

Цитата:

Сообщение от Aetae (Сообщение 206894)
Не, ничего непонятно.

Единственное что:
так не используйте свойства объекта, в чём проблема то?

Просто идея в том что я имитирую асоциативний массив с помощью объекта, и я здесь на сайте прочитал что в качестве асоциативного массива используют объект (потомутчо в ява скрипте таких нету было написано) где имена их будут в качестве ключей а в качестве значений другой массив из нужных мне символом потом нужно отсортировать полученный массив чтоб потом с помощью отсортированного массива вызвать в нужном порядке свойства объекта и зашифровать правильно перееданий текст. По криптографии это обычный шифр перестановки, но вот эти буквы которые повторяются мне все портят и не получается это устранить и отсортировать правильно массив.

Positive_fun 27.09.2012 21:52

Цитата:

Сообщение от lord2kim (Сообщение 206899)
Positive_fun,
var str = "задача".split("");
alert(str.sort());

выйдет в результате [а, а, а, д, з, ч]
а мне нужно чтоб каждая след буква которая повторяется в данном случае А была уникальной тоисть не [а, а, а]а чтоб [а1, а2, а3].

чтоб оно из строки "задача" мне дало [з, а1, д, а2, ч, а3] и в конце оно при сортировке полученого масива должно выдать [а1, а2, а3, д, з, ч]

Aetae 27.09.2012 22:06

Это можно сделать, но не нужно, т.к. проблема не в этом месте, а в логике работы вашего скрипта. Буква 'а' не уникальна, не имеет никакого значения в каком порядке она встроится обратно. Вместо того чтоб раздувать массив надо наоборот задуматься о возможно оптимизации в этом месте.


Часовой пояс GMT +3, время: 07:59.