首页 > 解决方案 > 从自定义 Google 表格函数返回二维数组时,从类中检索的值留空

问题描述

如果标题有点混乱,我很抱歉。基本上我有一个自定义的谷歌表格函数,它接收一个单元格范围作为参数。我有一个名为 Employee 的类,其构造函数将 ID 作为参数并将值保存在变量中。在自定义函数中,我创建了一个名为Employees 的数组,并为范围内的每个值添加一个Employee 类的新实例,并将该值作为构造函数参数。然后,我创建一个名为 IDs 的空数组,并遍历Employees 数组中的每个元素,并将保存在类中的ID 值添加到新数组中。如果我返回 IDs 数组,那么当我在 google 表格上调用该函数时,项目列表将垂直显示。但是,如果我改为创建一个二维数组并将 IDs 变量添加为元素之一,同时创建一个具有固定元素的新数组作为第二个值。如果我返回那个新的二维数组,当我调用函数时,Ids 数组应该水平打印在相邻的单元格上,第二个数组的值应该打印在下面。但是,不会打印 ID,只打印第二个数组的值。如果在遍历Employees 数组并将他们的ID 添加到IDs 数组之后我添加一个常量值,那么在调用函数时只会打印该值。这只发生在我返回一个二维数组时,如果我只返回 ID,它们都会被打印出来。如果在遍历Employees 数组并将他们的ID 添加到IDs 数组之后我添加一个常量值,那么在调用函数时只会打印该值。这只发生在我返回一个二维数组时,如果我只返回 ID,它们都会被打印出来。如果在遍历Employees 数组并将他们的ID 添加到IDs 数组之后我添加一个常量值,那么在调用函数时只会打印该值。这只发生在我返回一个二维数组时,如果我只返回 ID,它们都会被打印出来。

在下面的函数中,当在 Google Sheets 上调用图表函数时,ids 数组将在工作表上留空。

class Employee{
  constructor(employee){
    this.employeeID = employee;
  }
}
function chart(employeeIDs){
  employees = [];
  for(x = 0; x < employeeIDs.length; x++)
    employees.push(new Employee(employeeIDs[x]));
  ids = [];  
  for(x = 0; x < employees.length; x++)
    ids.push(employees[x].employeeID);
  vehicles = ["Car", "road", "bus", "Plane", "Submarine"];
  return [ids, vehicles];
}

如果我将退货更改为...

return ids

然后,当调用该函数时,将打印 ids 中的项目列表。如果在添加 Employee 类中的值后向 ids 数组添加其他值,例如...

ids = [];  
for(x = 0; x < employees.length; x++)
  ids.push(employees[x].employeeID);
ids.push(12)
vehicles = ["Car", "road", "bus", "Plane", "Submarine"];
return [ids, vehicles];
'''
Then only the number 12 is printed at the end, plus the entire contents of the vehicles array.

标签: javascriptgoogle-sheetsscripting

解决方案


推荐阅读