item有值但在Uint8Array中返回'undefined'

时间:2017-07-27 07:00:24

标签: javascript arrays binary hex

嗨我有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]),我会'未定义'。这是我创建的简单jsbin

2 个答案:

答案 0 :(得分: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; }




编辑:再次阅读docs您可以使用空构造函数new Uint8Array(); // new in ES2017。但是没有任何有效的例子。

答案 1 :(得分:1)

您可以使用UintArray.from()或将元素数传递给构造函数,然后使用括号表示法设置索引的值

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

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