Сообщение от 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.
|