Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Google Apps Script_Google Sheets_Callback - Fatal编程技术网

Javascript 将数组的单个元素写入另一个工作表

Javascript 将数组的单个元素写入另一个工作表,javascript,arrays,google-apps-script,google-sheets,callback,Javascript,Arrays,Google Apps Script,Google Sheets,Callback,我试图从电子表格中的某个范围中提取所有数据,并根据某个条件对其进行过滤,其中第[27]项和第[29]项等于“CO”。它工作正常,并且正确地过滤了范围,但是我试图在数组中只输出一个项目,即项目[3],它没有这样做。它给了我整个范围的过滤版本,这是好的,但我不想这样 这基本上是一个电子表格,包含学生和他们完成的工作模块的信息。我只想将第[3]项中标有“CO”或“complete”的学生姓名过滤到另一张表格中。我尝试使用data.map将过滤后的数据映射到另一个数组中,然后尝试只输出数组中的一个元素,

我试图从电子表格中的某个范围中提取所有数据,并根据某个条件对其进行过滤,其中第[27]项和第[29]项等于“CO”。它工作正常,并且正确地过滤了范围,但是我试图在数组中只输出一个项目,即项目[3],它没有这样做。它给了我整个范围的过滤版本,这是好的,但我不想这样

这基本上是一个电子表格,包含学生和他们完成的工作模块的信息。我只想将第[3]项中标有“CO”或“complete”的学生姓名过滤到另一张表格中。我尝试使用data.map将过滤后的数据映射到另一个数组中,然后尝试只输出数组中的一个元素,但效果不佳

顺便说一句,这是我第一次编写任何东西并使用谷歌应用程序脚本。我真的对这些东西很感兴趣,希望有一天能比这里的任何人都好一半。任何帮助我都将不胜感激

function ReviewReport(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var母版纸=ss.getSheetByName(“母版纸18-19-20”);
var newtab=ss.getSheetByName(“ReviewReportTest(Amith)”;
var totalcolumns=mastersheet.getLastColumn();
var totalrows=mastersheet.getLastRow();
var主数据=主数据表
.getRange(4,1,totalrows-3,totalcolumns)
.getDisplayValues();
var data=masterdata.filter(函数(项){
//退货项目[27]==“CO”&项目[29]==“CO”;
如果(项目[27]=“CO”&项目[29]=“CO”){
退货项目[3];
}
});
//试图将过滤后的数据映射到下面的另一个数组中,但效果不佳。
var bsb=data.map(行);
功能行(项目){
退货项目[3];
}
newtab.clearContents();
newtab.getRange(1,1,data.length,data[0].length).setValues(data);
}

要从数组对象写入单个值,请使用类范围
设置值(值)
其中值可以是
数据[rowIndex][columnIdx]


  • bsb
    已声明,但以后未使用
  • 代码将整个过滤数据添加到电子表格中
  • Array.prototype.map
    及其回调在同一范围内声明,但在回调声明之前使用map。我认为最好在调用它之前声明它,或者声明回调全局范围,但这完全取决于您。考虑样式、可读性和可维护性
  • 资源

    相关的


    您从不使用
    bsb
    变量。你是不是忘了把
    setValues(bsb)
    而不是
    setValues(data)
    ?@dwmorrin我试图将数据数组输出到
    bsb
    数组中,看看它是否有效,但没有。这里的
    bsb
    不起作用。我应该把它注释掉。我认为你的编辑不对。声明不需要在其父范围内。同样的范围就足够了。我想是的。这就是js从一开始的运行方式,好吧。@TheMaster我不记得它的确切来源,可能是从样式/疑难解答指南中。无论如何,谢谢你的反馈。@Rubén谢谢,
    setValue(value)”和
    data[rowIndex][columnIdx]`正在工作。
    bsb
    数组只是我尝试的东西,并没有真正使用。我应该把它注释掉的。很抱歉搞混了。我将以下内容放入for循环,它工作得非常好。它只是从过滤后的数据中输出我需要的列<代码>newtab.getRange(i,1).setValue(数据[i-1][3])