【发布时间】:2018-04-25 12:08:03
【问题描述】:
我在 google 脚本中遇到了数组问题。
假设我有范围:“A1:B4”。
|A栏|B栏|
|名称1 |值1|
|名称1 |值2|
|名称2 |值3|
|name2 |value4|
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Arkusz1");
var range = ss.getRange("A1:B4").getValues();
var array = [[]];
所以,我必须做一个如下所示的数组:
array[0] = name1
array[0][0] = value1
array[0][1] = value2
array[1] = name2
array[1][0] = value3
array[1][1] = value4
我做了这个
for(var i = 0; i < range.length; i++)
{
array[i] = range [i][0];
for(var j = 0; j < range[i].length; j++)
{
array[i][j] = range[i][j];
}
}
我正在进入第二个维度,我从第一个维度获得第一个字符,并且我无法更改它之后的值,例如而不是 value1 on:
array[0][0]
我只有 n(name1 的第一个字母)
我会很感激任何想法。
@EDIT
好的,谢谢大家的回答,但事实并非如此(或者我太愚蠢了,无法理解)。我有这张表,我需要做的是制作一个数组,其中 car1 是 array[0],car2 是 array[1] 等,并且 B 中的每个值都是唯一日期( array[0][0] -> car1 的一个日期,array[0][1] 不同的日期,但仍然是 car1 然后,在第三维中汇总了 C 列中的所有值,但取决于在同一天。我希望它足够清楚。
【问题讨论】:
-
尝试使用
SpreadsheetApp.getDataRange().getValues()代替 getRange。这将为您提供 [n][n] 数组中的值。 -
仍然没有,我得到了这样的结果:array[0] = name, array[0][0] = n // 应该是 value1, array[0][1] = a / / 应该是 value2
-
如果
myArr[i]不是一个数组("some name"是一个String)但可以索引(如String),那么myArr[i][j]将访问其值的索引。也许您想用您的数据创建一个对象,例如{prop1: [val1, val2, val3], prop2: {subprop1: val}, ... }。对于 Apps Script 中的 Sheet-writeable 数组,第一维必须始终是数组,所有数据都保存在数组的第二维中。 -
我认为您的问题在编辑后不一样。也不清楚