Показать сообщение отдельно
  #21 (permalink)  
Старый 03.11.2010, 02:11
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от poorking Посмотреть сообщение
[[[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]]]
Честно, не хочу вникать в то, что вы делаете, но если это конечная структура, то спешу вас огорчить: это не массив байтов, а массив целочисленных элементов. Иными словами, вы каждые 16 бит данных преобразовали в 64 бита.
Мать моя женщина! Очередной раз в стандарт глянул
Чтобы это исправить надо сделать следующее:
var a= [];
for (i = 0; i < rows; i++)    {
  a[i]= [];
  for (j = 0; j < cols; j++) a[i][j] = !!value; /* альтернативный вариант value & true */
}

Теперь у вас действительно байты. Но на этом счастье не закончилось.
На каждый массив в куче выделяется блок в 4К (наверное, зависит от реализации), при достижении порогового значения выделяется еще один блок, при этом весь массив перезаписывается чтобы избежать фрагментации. (ПАРАНОЙЯ )
К чему я все это? Да не проще все в одномерный массив загнать и с ним работать?
Но в вашем случае, вероятнее всего, лучшим массивом является сама строка.

Последний раз редактировалось vladlen, 03.11.2010 в 13:10.
Ответить с цитированием