Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环列和更新变量_Javascript_Arrays - Fatal编程技术网

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;countdocument.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!