Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将数组(数字)加载到google应用程序脚本字节[]_Javascript_Google Apps Script - Fatal编程技术网

Javascript 如何将数组(数字)加载到google应用程序脚本字节[]

Javascript 如何将数组(数字)加载到google应用程序脚本字节[],javascript,google-apps-script,Javascript,Google Apps Script,我在GoogleApps脚本中有一个数字数组,我想将其转换为base64。我当然可以使用一个简单的开源库,比如 然而,GAS已经为这种使用提供了功能 但是要调用这个函数,我需要一个字节[],而不是数字[] 因此,以下脚本出现错误:无法将数组转换为类[] 我做了更多的测试,只要字节的数值为128或更低,它似乎就能工作。我觉得这很奇怪,因为一个字节应该增加到255 以下代码对“bytes”运行良好,但对“bytes2”运行失败,因为存在大于128的值: function testByteArrays

我在GoogleApps脚本中有一个数字数组,我想将其转换为base64。我当然可以使用一个简单的开源库,比如

然而,GAS已经为这种使用提供了功能 但是要调用这个函数,我需要一个字节[],而不是数字[]

因此,以下脚本出现错误:无法将数组转换为类[]

我做了更多的测试,只要字节的数值为128或更低,它似乎就能工作。我觉得这很奇怪,因为一个字节应该增加到255

以下代码对“bytes”运行良好,但对“bytes2”运行失败,因为存在大于128的值:

function testByteArrays()
{
  var bytes = [];
  for (var i = 0; i < 128; i++) bytes.push(i);
  var x = Utilities.newBlob(bytes)

  var bytes2 = [];
  for (var i = 0; i < 129; i++) bytes2.push(i);
  var x = Utilities.newBlob(bytes2)
}
…一个字节应增加到255

但不是用符号。。。在这种情况下,字节应在[-128..127]范围内,其中高阶位保留为符号位。给定一个正整数i,如果它大于127,我们需要计算二者的补码。这可以通过减去28256来实现。将其应用于您的第一个示例:

function testBase64Encode()
{
  var bytes = [];
  for (var i = 0; i < 255; i++) bytes.push(i<128?i:i-256);

  var x = Utilities.base64Encode(bytes)
} 
这将避免您收到的错误消息无法将数组转换为类[]。。理想情况下,还应确保数值的起始范围为0..255

…一个字节应增加到255

但不是用符号。。。在这种情况下,字节应在[-128..127]范围内,其中高阶位保留为符号位。给定一个正整数i,如果它大于127,我们需要计算二者的补码。这可以通过减去28256来实现。将其应用于您的第一个示例:

function testBase64Encode()
{
  var bytes = [];
  for (var i = 0; i < 255; i++) bytes.push(i<128?i:i-256);

  var x = Utilities.base64Encode(bytes)
} 

这将避免您收到的错误消息无法将数组转换为类[]。。理想情况下,您还应该确保数值从0到255的范围开始。

基本上您需要的是将整数转换为二进制?基本上你要问的是把一个整数转换成二进制?
function testBase64Encode()
{
  var bytes = [];
  for (var i = 0; i < 255; i++) bytes.push(i<128?i:i-256);

  var x = Utilities.base64Encode(bytes)
}