我在谷歌工作表中有一个数值数组,所有这些都需要使用应用程序脚本更改它们上的符号.例如,6000变成-6000,以此类推.我正在try 使用数组映射函数来执行此操作.

当我完成脚本时,它似乎已经遍历了array.我的一列多行变成了一行多列.我在这个网站上try 了这么多不同的例子,但我似乎无法让它们发挥作用.我对此还是个新手,所以数组看起来仍然令人困惑.

目前,我已经简化了这一点,我正在已知(和固定的)范围内进行测试.一旦我可以解决颠覆问题,我就会增加范围的灵活性.

    function changesign() {
      const test_sht = monthly_expense.getSheetByName("Test");
      var sample1 = test_sht.getRange("B2:B6");
      var values1 = sample1.getValues();
      Logger.log(values1);


      var newValues = values1.map(function(value) {
      return value * -1;
      });
      Logger.log(newValues);
      test_sht.getRange("G1:G5").setValues([newValues]); 
    }

记录器的结果: 10:49:13 PM信息[[6000.0],[6000.0],[7000.0],[525.0],[23.93]] 10:49:13 PM信息[-6000.0,-6000.0,-7000.0,-525.0,-23.93] 10:49:13 PM错误异常:数据中的行数与范围中的行数不匹配.数据为%1,但范围为%5.

推荐答案

values1是由数组组成的array.

因此,在map(...)中,每次value都是一个数组,您可以将该数组乘以-1.是的,JS是一种奇怪的语言,它允许将一个数组乘以一个数字,然后给出一个数字作为结果……这就是为什么会返回一个数字,而不是一个包含数字的array.

让我们做好这件事:

return [ value[0] * -1 ];

首先,我们解开数字,然后将其乘以-1并将其包装回一个新的数组中.在返回的结果中,我们有一个包含负数的array.然后,在map(...)对每个值执行完它的工作之后,它返回一个新的数组newValues.

Javascript相关问答推荐

了解Node.js中的EventEums和浏览器中的addEventEums之间的关系

当运行d3示例代码时,没有显示任何内容

当作为表达式调用时,如何解析方法decorator 的签名?

在带有背景图像和圆形的div中添加长方体阴影时的重影线

变量的值在Reaction组件中的Try-Catch语句之外丢失

Eval vs函数()返回语义

第二次更新文本输入字段后,Reaction崩溃

使用auth.js保护API路由的Next.JS,FETCH()不起作用

搜索功能不是在分页的每一页上进行搜索

将基元传递给THEN处理程序

JavaScript:如果字符串不是A或B,则

不同表的条件API端点Reaction-redux

如何使用画布在另一个内部绘制一个较小但相同的形状,同时保持恒定的边界厚度?

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

Next.js无法从外部本地主机获取图像

FindByIdAndUpdate在嵌套对象中创建_id

我怎样才能点击一个元素,并获得一个与 puppeteer 师导航页面的URL?

表单数据中未定义的数组键

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

Node.js的Fetch()调用总是创建新的Express会话