【问题标题】:Google Apps Script equivalent for JS typed arrays (Uint8Array and Uint16Array)JS 类型数组的等效 Google Apps 脚本(Uint8Array 和 Uint16Array)
【发布时间】:2016-12-11 09:33:42
【问题描述】:

当我尝试在谷歌应用脚​​本中运行以下代码时

  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?

【问题讨论】:

  • 使用Uint8位数组的目的是什么?这只是为了节省谷歌服务器的空间吗?你希望这个数组有多大?
  • GAS 在 Rhino 上运行,可能不是最新版本; typed arrays are not supported.
  • @Xepoch,我可以请你分享你的“字节翻转”代码吗?听起来您能够成功模仿 Uint8Array 的功能。
  • @Xepoch,您链接到的代码 sn-p 中的这一位有效地回答了我的问题:vegaArray[i]<0?vegaArray[i]+256:vegaArray[i];。谢谢!

标签: google-apps-script


【解决方案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]);
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多