Javascript 如何循环列和更新变量
抓伤了我的头,我正在寻找一个指向正确方向的指针。Javascript 如何循环列和更新变量,javascript,arrays,Javascript,Arrays,抓伤了我的头,我正在寻找一个指向正确方向的指针。 我有一个谷歌电子表格,有很多行。添加行,脚本只查看最新的行 由于没有正式的计算机课程,我只是在学习一些东西,尽管这可能是最低效的方式 我有一系列的变量,由单元格的值、Data1、Data2等填充,直到根据列数完成行。这只是一行,我不想处理超过一行的内容 目前,我已编写代码,依次查看每一个: var Data1 = sh.getRange(row,1).getValues()[0]; var Data2 = sh.getRange(row,2).g
我有一个谷歌电子表格,有很多行。添加行,脚本只查看最新的行 由于没有正式的计算机课程,我只是在学习一些东西,尽管这可能是最低效的方式 我有一系列的变量,由单元格的值、Data1、Data2等填充,直到根据列数完成行。这只是一行,我不想处理超过一行的内容 目前,我已编写代码,依次查看每一个:
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....
“+Data1+”Javascript(以及其他语言)中的数组是一个事物列表,可以是单词(字符串)、数字(int、float)或其他数组
它有点像一个有序的盒子,你把东西一个接一个地放在那里。
数组中的每个项都有一个“索引”,我们从0开始计数。
因此,阵列:
var friut = ["apple", "banana", "orange"];
有三个索引为0、1和2的项
通过调用索引,我们可以从数组中获取项
console.log( friut[0] ); //prints out "apple"
console.log( fruit[1] ); //prints out "banana"
console.log( friut[2] ); //prints out "orange"
数组的另一个属性是“长度”,通过这种方式可以知道数组中有多少项
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( 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
然后你可以做:
for(var count = 0; count < dataArray.length(); ++count)
{
document.write("<td width=\"443\" bgcolor=\"#FFFFFF\" colspan=\"3\">" + dataArray[count] + "</td><td width=\"245\" b....");
}
for(var count=0;count document.write(“+dataArray[count]+”您还提到了一个2D数组
这只是一个数组的数组
让我们回到水果,假设我们有三个数组
var apples = ["gala", "washington", "fuji"];
var bananas = ["cavendish", "plantain", "lady finger"]
var oranges = ["valencia", "navel", "blood"];
假设我们把这三个列表放在另一个列表中
var fruit = [apples, bananas, oranges];
所以,现在“水果”是一个由三个列表组成的列表。或者用Javascript的术语来说,
“水果”是包含三个数组的数组,或者水果是二维数组
为什么是2D?如果我们把它画出来,我们可以看到它是二维的
fruit =
---------------------------------------------
| "gala" | "cavendish" | "valencia" |
| "washington" | "plantain" | "navel" |
| "fuji" | "lady finger" | "blood" |
---------------------------------------------
每个条目几乎都可以被认为是X,Y坐标平面上的点(我完全会为这句话感到悲伤,但它足以作为一个基本示例)
记住,我们从0开始计算索引!
瞧!如果我们对数组水果使用这个约定,我们可以从数组中得到一个水果
/*
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( 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" |
---------------------------------------------
哇,“平原”不见了所以如果我想打印“手指夫人”的旧地址
Javascript会抱怨的。随着“平原”的消失,“手指夫人”有了一个新的索引。这些类型的东西会让你搞砸,直到你知道该找什么为止
有点长,但我希望它能有所帮助。Jason,非常感谢您花时间解释,这确实有很大帮助。在我晚上睡觉和梦见Java之前的最后一个问题,我可以使用类似的代码循环将数据推送到dataArray中吗?有些工作表可能有100多列,因此,循环推送看起来更有效。…很抱歉,这是一种痛苦…是的,你可以。如果你得到的数据是在一个数组中,你可以继续循环源数组并推到一个新数组中…但是如果你的数据已经在一个数组中,为什么要将它移到一个新数组中?只需循环你的源数组并全天抽离!
console.log( fruit[1][2] ); //no way! error town!