Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.09.2010, 11:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от simple
создать ассоциативный массив pr[]
http://alljs.ru/articles/array/whatis.html#assoc

Теперь, когда у вас pr объект, а не массив: а вы pr['Moscow'] инициализируете нулём предварительно?
Ответить с цитированием
  #12 (permalink)  
Старый 30.09.2010, 12:57
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Сообщение от Kolyaj Посмотреть сообщение
http://alljs.ru/articles/array/whatis.html#assoc

Теперь, когда у вас pr объект, а не массив: а вы pr['Moscow'] инициализируете нулём предварительно?
нет не инициализировал, но проблема в принципе решена в обход, всем спасибо за помощь
Ответить с цитированием
  #13 (permalink)  
Старый 02.11.2010, 13:46
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

exec,
Сообщение от exec Посмотреть сообщение
<script type="text/javascript">
Array.prototype.to2x = function () {
	var temp = [];
	for ( var i = 0; i < this.length; i += 3 ) {
		temp.push(this.slice(i, i + 3));
	}
	return temp;
};

var t = [  0,1,2,3,4,5,6,7,8  ].to2x();
alert(  t[0] + '; ' +  t[1] + '; ' + t[2]  );
</script>
Не могли бы Вы пояснить мне кое что, в данном методе получается что каждый элемент массива, кторый образует строки есть подмассив в 3 столбца?

И у меня тоже вопрос похожего характера. У меня есть строка битов(string), длина ее 128. И ее нужно преобразовать в квадратный массив [4]x[4]. То бишь по 8 бит в ячейке. Чтобы сделать вашим способом, мне нужно сначала строку преобразовать в одномерный массив, по 8 бит на элемент, а затем только делать эти преобразования? Не подскажите какие есть варианты? можно ли сразу делать присвоение типа array[i][j]=значение внутри цикла со счетчиком j, который вложен соответственно в цикл со счетчиком i?
__________________
readOnly
Ответить с цитированием
  #14 (permalink)  
Старый 02.11.2010, 14:26
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

С одной стороны строка это как-то глупо С другой число 128 бит, многовато для сдвига. Чтобы не думать разорвать строку на одномерный массив по 8 символов, пройтись по элементам преобразовав их в числа и применить выше описанную функцию.
Ответить с цитированием
  #15 (permalink)  
Старый 02.11.2010, 14:54
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

vladlen,
Дело в том что в основную функцию попадает текст, преобразующийся потом в двоичный вид, и обрабатываемый в последствии кусками по 128 бит. Думаете, хранить весь исходный двоичный текст, а он, например, на полмегабайта в массиве(элемент=1бит)?

Или только 128-битные блоки? Я не знаю как лучше, просто мне кажется, что если длинные массивы крутить в циклах, очень медленно работать будет, там ведь еще куча преобразований
__________________
readOnly
Ответить с цитированием
  #16 (permalink)  
Старый 02.11.2010, 16:50
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Вы задачу нормально опишите, а то тут какой-то текст приплели.
Ответить с цитированием
  #17 (permalink)  
Старый 02.11.2010, 17:13
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

vladlen,
В функцию попадает текст, например value какого нибудь textarea. Там он кодируется в двоичный вид. Затем рвется на куски по 128бит и вот этот 128 бит кусок нужно скопировать в квадратный массив 4х4 по 8 бит в ячейке.
Сначала был вопрос как это сделать если у меня двоичный код хранится в string. Вы мне посоветовали хранить двоичный код в массиве, вот я и спросил, все ли будет ок если я длиннющий бинарный код буду держать в массиве? Я думал что будет долго работать, но все нормально. Спасибо за совет

Теперь я без проблем могу разбить 128битные блоки на массив 4х4, правда массив получится вида
[[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],
[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],
[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],
[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]]]
__________________
readOnly
Ответить с цитированием
  #18 (permalink)  
Старый 02.11.2010, 19:10
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Нет, не без проблем Подскажите пожалуйста, как мне одномерный массив битов преобразовать в квадратный массив вида как изобразил выше
__________________
readOnly
Ответить с цитированием
  #19 (permalink)  
Старый 02.11.2010, 20:34
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Я сделал вот так, в несколько ходов, хотелось бы конечно покрасивше

input - одномерный массив битов.
tInp - временный массив, в который возвращаю преобраованный input, потом обратно в input возвращаю его значение.
И только потом получил массив state, такой который хотел. Вобщем абракадабра.

byteLen=8;


for (var j=0; j<input.length;j+=byteLen) tInp.push(input.slice(j, j+byteLen));
input = tInp;
			
for (var r=0; r<4;r++) state.push(input.slice(r*input.length/4, r*input.length/4+input.length/4));
__________________
readOnly
Ответить с цитированием
  #20 (permalink)  
Старый 02.11.2010, 21:57
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Все, проблема решена) нашел хорошую шпаргалку как создавать многомерный массив, причем таких этажей сколько угодно можно сделать. Просто. Не знаю почему не доходило...

var a=new Array ();
for (i = 0; i < rows; i++)    {
		a[i]=new Array ();

		for (j = 0; j < cols; j++)	{
			a[i][j] = value;
		}
}
__________________
readOnly
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Москва, ищу JavaScript программиста отлично знающего ExtJS, от 10 USD / час. maximgb Работа 3 03.08.2010 14:34
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24