适用于JS类型数组的Google Apps脚本(Uint8Array和Uint16Array)

时间:2016-12-11 09:33:42

标签: google-apps-script

当我尝试在google apps脚本中运行以下代码时

  var numArray = [31, -117, 8, 8, -102, -124, 75, 88, 2, 0, 106, 117, 108, 121, 46, 116, 120, 116, 0, 1, 4, 0, -5, -1, 106, 117, 108, 121, -13, -113, 116, -57, 4, 0, 0, 0];
  var typedArray     = new Uint8Array(numArray);

......我明白了:

ReferenceError: "Uint8Array" is not defined.

同时

  var numArray = [31, -117, 8, 8, -102, -124, 75, 88, 2, 0, 106, 117, 108, 121, 46, 116, 120, 116, 0, 1, 4, 0, -5, -1, 106, 117, 108, 121, -13, -113, 116, -57, 4, 0, 0, 0];
  var typedArray     = new Array(numArray);

......工作正常。有没有一种聪明的解决方法在谷歌应用程序脚本中实现Uint8Array?

1 个答案:

答案 0 :(得分:1)

好的,感谢@Xepoch的评论,这是我原来问题的答案。

相当于

  var numArray = [31, -117, 8, 8, -102, -124, 75, 88, 2, 0, 106, 117, 108, 121, 46, 116, 120, 116, 0, 1, 4, 0, -5, -1, 106, 117, 108, 121, -13, -113, 116, -57, 4, 0, 0, 0];
  var typedArray     = new Uint8Array(numArray);

是(在没有Uint8Array的情况下):

  var numArray = [31, -117, 8, 8, -102, -124, 75, 88, 2, 0, 106, 117, 108, 121, 46, 116, 120, 116, 0, 1, 4, 0, -5, -1, 106, 117, 108, 121, -13, -113, 116, -57, 4, 0, 0, 0];
  var typedArray = [];
  for(var i=0;i<numArray .length;i++) {
     typedArray.push(numArray [i]<0?numArray [i]+256:numArray [i]);
  }