Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объект в массив Uint8Array (https://javascript.ru/forum/misc/66919-obekt-v-massiv-uint8array.html)

Sergey and 17.01.2017 19:17

Объект в массив Uint8Array
 
Подскажите как объект конвертировать в массив типа Uint8Array?
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
    this.var1= v1;
    this.varvar2= v2;
    this.var3 = v3;
    this.var4= v4;
    this.var5= v5;
    this.var6= v6;
    this.var7= v7;
    this.var8= v8;
    this.var9= v9;
    this.var10= v10;

};

var td = new Datt(1,1,1,1,1,1,1,1,1,1);
var buf= new Uint8Array();
buf =td.array //как преобразовать?

Sergey and 18.01.2017 23:16

Так не возможно сделать?

Dilettante_Pro 19.01.2017 16:50

Sergey and
Вопрос: кому и зачем нужны такая функция и такой объект?

function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
    this.var1= v1;
    this.varvar2= v2;
    this.var3 = v3;
    this.var4= v4;
    this.var5= v5;
    this.var6= v6;
    this.var7= v7;
    this.var8= v8;
    this.var9= v9;
    this.var10= v10;

};

Чтобы с ними было трудно работать?

А насчет преобразования, например, из массива
var td = [1,1,1,1,1,1,1,1,1,1];
var buf= new Uint8Array(td);

alert(buf.BYTES_PER_ELEMENT);
alert(buf);
alert(JSON.stringify( buf));

Sergey and 19.01.2017 18:32

Мне нужно очень. :)
Нужно что то подобное сделать:
typedef struct{
int a;
int b;
double f;
....
}structdata;
typedef uniou {
structdata sd;
char buff[sizeof(structdata)];
}Tdataunion;
Tdataunion rd;

send(&rd.buff[0])

это на си на скриптах у меня что то ничего неполучается(

Sergey and 20.01.2017 13:19

var td = [1,1,1,1,1,1,1,1,1,1];
var buf= new Uint8Array(td);
Этот код запишет в buf значение 1 + ASCII код запятой ? это не то тогда.
Нужно взять байты из памяти где храниться объект и отправить их.
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
    this.var1= v1;
    this.varvar2= v2;
    this.var3 = v3;
    this.var4= v4;
    this.var5= v5;
    this.var6= v6;
    this.var7= v7;
    this.var8= v8;
    this.var9= v9;
    this.var10= v10;

};
var fg = new Datt;
fg нужно преобразовать в массив байт.Без добавления символов запятых ид . Подскажите пожалуйста уважаемые специалисты я в javascript плохо разбираюсь только начал изучать.

Dilettante_Pro 20.01.2017 14:56

Sergey and,
Цитата:

Сообщение от Sergey and
Этот код запишет в buf значение 1 + ASCII код запятой ?

Какие запятые? запятых в массиве нет. Это просто разделитель при задании и отображении массива.
var td = [1,2,3,4,5,6,7,8,9,10];
var buf= new Uint8Array(td);

alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);

Sergey and 20.01.2017 15:30

Понятно. Тогда то что надо ) спасибо.

Sergey and 22.01.2017 12:02

Вот так не получается. выходит сообщение количество элементов 0 четвертый элемент udefined (
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
    this.var1= v1;
    this.varvar2= v2;
    this.var3 = v3;
    this.var4= v4;
    this.var5= v5;
    this.var6= v6;
    this.var7= v7;
    this.var8= v8;
    this.var9= v9;
    this.var10= v10;

};
var fg = new Datt(1,1,1,1,1,1,1,1,1,1);

var buf = new Uint8Array(fg);

alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);

Dilettante_Pro 23.01.2017 11:08

Sergey and,
Я так и не понял, зачем вам нужна эта дурацкая функция.
Если очень хочется преодоления трудностей -
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
    this.var1= v1;
    this.var2= v2;
    this.var3 = v3;
    this.var4= v4;
    this.var5= v5;
    this.var6= v6;
    this.var7= v7;
    this.var8= v8;
    this.var9= v9;
    this.var10= v10;

};
var fg = new Datt(1,1,1,1,1,1,1,1,1,1);
var fa = [];
for(var i = 1; i <= 10; i++) {
   fa[i - 1] = fg['var'+i];
}
var buf = new Uint8Array(fa);

alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);


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