我挠了头,正朝着正确的方向寻找指针 我有一个包含多行的Google电子表格。行添加,脚本只查看最新的行。
没有正式的计算机课程我只是在挑选,尽管可能是效率最低的方式。
我有一系列变量由单元格的值Data1,Data2等填充,直到行完成为止,列数。它只是一行,我不想处理任何超过1行。
目前,我已编码依次查看每一个:
var Data1 = sh.getRange(row,1).getValues()[0];
var Data2 = sh.getRange(row,2).getValues()[0];
var Data3 = sh.getRange(row,3).getValues()[0];
var Data4 = sh.getRange(row,4).getValues()[0];
依旧......
这和充满鱼的水壶一样高效,所以看着数组(如果这是解决方案)循环遍历行,单行,并返回一个我稍后可以在某些html中调用的数组,即..
<td width="443" bgcolor="#FFFFFF" colspan="3">' + Data1 + '</td><td width="245" b....
有人可以向我推荐一些例子,我可以完全理解数组可以提供哪些帮助,大多数示例似乎都是指二维数组但不解释如何调用这些值...
欢迎任何帮助......
Ĵ
答案 0 :(得分:0)
Javascript中的数组(以及其他语言中的数组)是一个列表,无论是单词(字符串),数字(int,float)还是其他数组
它有点像一个有序的盒子,你把东西一个接一个地放在那里。
数组中的每个项都有一个“索引”,我们从0开始计数。
所以数组:
var friut = ["apple", "banana", "orange"];
有三个项目,索引为0,1和&amp; 2
通过调用索引,我们可以从数组中获取项目。
console.log( friut[0] ); //prints out "apple"
console.log( fruit[1] ); //prints out "banana"
console.log( friut[2] ); //prints out "orange"
数组的另一个属性是“length”,这样就可以判断数组中有多少项。
console.log(friut.length()); //prints out 3, because there are three items in the array
如此了解数组的长度,我们可以使用循环来调出数组中的每个项目
/*
while "count" is less than the length of the array "fruit", perform an operation
and each time add 1 to count (thats the ++count part)
so when "count" reaches the same number as fruit.length(), stop
*/
for(var count = 0; count < friut.length(); ++count)
{
console.log( friut[count] );
}
通过这种方式,您可以使用一些在屏幕上绘制对象的脚本替换“console.log()”。
记住,要从数组中获取元素,您需要调用它的索引,这只是列表中的数字。
我希望这有助于理解。
至于将数据放入数组中,首先需要创建一个数组,然后使用“push”命令将数据设置为数组。
var dataArray = [];
dataArray.push( sh.getRange(row,1).getValues()[0] );
dataArray.push( sh.getRange(row,2).getValues()[0] );
dataArray.push( sh.getRange(row,3).getValues()[0] );
dataArray.push( sh.getRange(row,4).getValues()[0] );
然后你可以这样做:
for(var count = 0; count < dataArray.length(); ++count)
{
document.write("<td width=\"443\" bgcolor=\"#FFFFFF\" colspan=\"3\">" + dataArray[count] + "</td><td width=\"245\" b....");
}
干杯!
...这里有一个链接来帮助解决数组的细节...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
答案 1 :(得分:0)
您还提到了2D阵列。
这只是一个数组数组。
让我们回到水果,假设我们有三个阵列
var apples = ["gala", "washington", "fuji"];
var bananas = ["cavendish", "plantain", "lady finger"]
var oranges = ["valencia", "navel", "blood"];
并且假设我们将这三个列表放在另一个列表中
var fruit = [apples, bananas, oranges];
所以,现在“水果”是三个清单的清单。或者在Javascript中, “fruit”是一个包含三个数组的数组,或者fruit是一个2D数组。
为何选择2D?好吧,如果我们把它画出来,我们可以看到它在2维中列出
fruit =
---------------------------------------------
| "gala" | "cavendish" | "valencia" |
| "washington" | "plantain" | "navel" |
| "fuji" | "lady finger" | "blood" |
---------------------------------------------
每个条目几乎可以被认为是X,Y cooridnate平面上的点(我完全会为这个陈述感到悲伤,但它对于一个基本的例子来说已经足够了)。
"gala" is at (0,0)
"plaintain" is at (1,1)
"blood" is at (2,2)
记住我们开始计数为0的索引! 低,看哪!如果我们在数组果实上使用这个约定,我们就可以从数组中得到一个水果
console.log( fruit[0][0] ); //prints gala
console.log( fruit[1][1] ); //prints plantain
console.log( fruit[2][2] ); //prints blood
console.log( fruit[0][2] ); //prints fuji
console.log( fruit[2][0] ); //prints valencia
好的,如果你的所有阵列都是相同的大小(长度),那么这很有用,但是如果它们不是那么你就会遇到问题。看看
fruit =
---------------------------------------------
| "gala" | "cavendish" | "valencia" |
| "washington" | "lady finger" | "navel" |
| "fuji" | | "blood" |
---------------------------------------------
如果我试图打印“女士手指”的旧地址,那么“普通人”就不见了。
console.log( fruit[1][2] ); //no way! error town!
Javascript会抱怨。随着“普通人”走了,“女士手指”有了新的指数。在您知道要查找的内容之前,这些类型的东西会让您感到困惑。
有点长但我希望它有所帮助。