элемент имеет значение, но в Uint8Array возвращает 'undefined'

1

привет, у меня Uint8Array

var ar = new Uint8Array();
ar[0] = 'G';
ar[1] = 0x123;

второй индекс является шестнадцатеричным десятичным числом, и я хочу проверить, что ar[1] больше нуля или нет, поэтому я пишу этот код:

if(ar[1] > 0){
  console.log("OK");
}
else{
  console.log("NOP")
}

но если я пишу console.log(ar[1]) я получаю "undefined". это простой jsbin, который я создал.

Теги:
arrays
hex
binary

2 ответа

2
Лучший ответ

AFAIK количество записей должно быть передано в качестве аргумента конструктору.

const ar = new Uint8Array(2);
ar[0] = 'G';
ar[1] = 0x123;

console.log(ar[1]);

if(ar[1] > 0){
  console.log("OK");
}
else{
  console.log("NOP")
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

EDIT: снова new Uint8Array();//new in ES2017 документы, вы можете использовать пустой конструктор new Uint8Array();//new in ES2017 new Uint8Array();//new in ES2017. Но нет никакого рабочего примера.

1

Вы можете использовать UintArray.from() или передать количество элементов в конструктор, а затем установить значение индекса с помощью скобки нотации

var ar = Uint8Array.from(["G", 0x123]);

if (ar[1] > 0) {
  console.log("OK");
} else {
  console.log("NOP")
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню