Javascript 使用循环将索引插入下一行的值
我想插入数组索引的所有值,我使用的是二维数组,但它只插入2d数组中的最后一个索引,我还使用if来检查其中一个索引是否有值如果是,那么该值将插入,如果不是,则不会插入的索引Javascript 使用循环将索引插入下一行的值,javascript,arrays,loops,google-apps-script,Javascript,Arrays,Loops,Google Apps Script,我想插入数组索引的所有值,我使用的是二维数组,但它只插入2d数组中的最后一个索引,我还使用if来检查其中一个索引是否有值如果是,那么该值将插入,如果不是,则不会插入的索引 var arr = [[data1 , data2, data3], [data4 , data5, data6]]; //data1 to data 4 have a value , data 5 and 6 is empty for(var i = 0; i < arr.length; i++) {
var arr = [[data1 , data2, data3], [data4 , data5, data6]];
//data1 to data 4 have a value , data 5 and 6 is empty
for(var i = 0; i < arr.length; i++) {
for(var j =0; j < arr[i].length; j++) {
if(arr[i][j].length != 0 ){
ToSheet.getRange(nextRow+1,2,1,3).setValues([arr[i]]);
//It insert only the last index in array arr[1] even the index 0 have a value
}
}
}
var arr=[[data1,data2,data3],[data4,data5,data6];
//数据1到数据4有一个值,数据5和6为空
对于(变量i=0;i
尝试使用以下方法:
function myFunction() {
var arr = [['data1' , 'data2', 'data3'], ['data4' , 'data5', 'data6']];
var outerArray = [];
//data1 to data 4 has a value , data 5 and 6 is empty
for(var i = 0; i < arr.length; i++) {
for(var j =0; j < arr[i].length; j++) {
if (arr[i][j].length != 0 ) {
outerArray.push(arr[i]);
ToSheet.getRange(nextRow+1,2,1,arr[i].length).setValues(outerArray);
//It inserts only the last index in array arr[1] even if the index 0 has a value
}
}
}
}
函数myFunction(){
var arr=['data1','data2','data3'],['data4','data5','data6'];
var outerArray=[];
//数据1到数据4有一个值,数据5和6为空
对于(变量i=0;i
我总是定义一个外部数组,并将内部数组推入其中,而不是试图按字面意思构建两个D数组。另外,正在写入的列数可能会发生变化,因此使用内部数组的长度来设置要写入的列数。问题也可以在sandy先生的帮助下解决,感谢您的帮助,我看到通过使用方法推送和循环3次,对于索引的值,我看到它还添加了arr[i]的值,3次,所以为了尽量减少这个错误,我只使用一个循环,循环用于索引和使用或用于条件,而不是我得到我想要的:)
函数myFunction(){
var arr=[[data1,data2,data3],[data4,data5,data6];
var outerArray=[];
//数据1到数据4有一个值,数据5和6为空
对于(变量i=0;i
你现在的逻辑是你每次都要经过arr[0]
和arr[1]
三次,当arr[i][j]
的内容不是0时,你就要写整个arr[i]
这是有意的吗?如果要插入行而不考虑值,为什么要首先进行检查?你能给出一个提供给函数的数据的例子,以及你希望它做什么吗?是的,如果arr[i][j]中的一个值不等于0,我写整个arr[i],即使是一个或两个arr[i]的值也等于0,但是当arr[i]的值等于零时,这个值将不会被写。只有arr[i]有一个值Hi Sandy谢谢你回答我的问题,但是当我尝试运行代码时,它出现了一个错误,上面写着“不正确的范围高度,是2,但应该是1”。它只插入第一个索引,而不是第二个索引,即使第二个索引有值。我想你的数组有问题arr
。我认为它不是你告诉我们的格式。您需要使用故障排除技术,并逐行检查代码。打开以下链接并阅读。1+对于帮助我的链接,我现在使用调试器谢谢@Sandy
function myFunction() {
var arr = [[data1 , data2, data3], [data4 , data5, data6]];
var outerArray = [];
//data1 to data 4 have a value , data 5 and 6 is empty
for(var i = 0; i < arr.length; i++) {
if(arr[i][0].length != 0 || arr[i][1].length != 0 || arr[i][2].length != 0 ){
outerArray.push(arr[i]);
ToSheet.getRange(nextRow+1,2,outerArray.length,outerArray[0].length).setValues(outerArray);
//(row, column, numRows, numColumns)
}
}
}