将数组的单个元素写入另一个 sheet
Writing a single element of an array to another sheet
我正在尝试从一个范围内的所有数据中提取sheet 并根据项目[27] 和项目[29] 等于“CO”的特定条件对其进行过滤。它工作正常并正确过滤范围但是我试图只输出数组中的一项,即 item[3] 但它没有这样做。它为我提供了整个范围的过滤版本,这很好,但我不想要那个。
这基本上是一个传播sheet,其中包含学生和有关他们已完成的工作模块的信息。我只想过滤学生的姓名,即项目 [3],他们在某个工作模块中标记为“CO”或“完成”到另一个 sheet。我尝试使用 data.map 将过滤后的数据映射到另一个数组中,然后尝试仅输出数组的一个元素,但效果不佳。
顺便说一句,这是我第一次编写任何代码并使用 Google Apps 脚本。我真的对这些东西很感兴趣,希望有一天能和这里的任何人一样好。任何帮助我将不胜感激。
function ReviewReport() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var mastersheet = ss.getSheetByName("Master Sheet 18-19-20");
var newtab = ss.getSheetByName("ReviewReportTest(Amith)");
var totalcolumns = mastersheet.getLastColumn();
var totalrows = mastersheet.getLastRow();
var masterdata = mastersheet
.getRange(4, 1, totalrows - 3, totalcolumns)
.getDisplayValues();
var data = masterdata.filter(function (item) {
// return item[27] === "CO" && item [29] === "CO";
if (item[27] === "CO" && item[29] === "CO") {
return item[3];
}
});
//tried to map the filtered data into another array below but this is not working as well.
var bsb = data.map(row);
function row(item) {
return item[3];
}
newtab.clearContents();
newtab.getRange(1, 1, data.length, data[0].length).setValues(data);
}
要从 Array 对象写入单个值,请使用 Class 范围 setValue(value)
,其中值可以是 data[rowIndex][columnIdx]
.
bsb
已声明但后来未使用。
- 代码正在将整个过滤后的数据添加到电子表格
Array.prototype.map
和它的回调在同一范围内声明,但在回调声明之前使用 map。我认为最好在调用之前声明它,或者声明回调全局范围,但这完全取决于你。考虑风格、可读性和可维护性。
资源
相关
- Declaring variables and functions, in what order?
- Create a custom callback in JavaScript
我正在尝试从一个范围内的所有数据中提取sheet 并根据项目[27] 和项目[29] 等于“CO”的特定条件对其进行过滤。它工作正常并正确过滤范围但是我试图只输出数组中的一项,即 item[3] 但它没有这样做。它为我提供了整个范围的过滤版本,这很好,但我不想要那个。
这基本上是一个传播sheet,其中包含学生和有关他们已完成的工作模块的信息。我只想过滤学生的姓名,即项目 [3],他们在某个工作模块中标记为“CO”或“完成”到另一个 sheet。我尝试使用 data.map 将过滤后的数据映射到另一个数组中,然后尝试仅输出数组的一个元素,但效果不佳。
顺便说一句,这是我第一次编写任何代码并使用 Google Apps 脚本。我真的对这些东西很感兴趣,希望有一天能和这里的任何人一样好。任何帮助我将不胜感激。
function ReviewReport() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var mastersheet = ss.getSheetByName("Master Sheet 18-19-20");
var newtab = ss.getSheetByName("ReviewReportTest(Amith)");
var totalcolumns = mastersheet.getLastColumn();
var totalrows = mastersheet.getLastRow();
var masterdata = mastersheet
.getRange(4, 1, totalrows - 3, totalcolumns)
.getDisplayValues();
var data = masterdata.filter(function (item) {
// return item[27] === "CO" && item [29] === "CO";
if (item[27] === "CO" && item[29] === "CO") {
return item[3];
}
});
//tried to map the filtered data into another array below but this is not working as well.
var bsb = data.map(row);
function row(item) {
return item[3];
}
newtab.clearContents();
newtab.getRange(1, 1, data.length, data[0].length).setValues(data);
}
要从 Array 对象写入单个值,请使用 Class 范围 setValue(value)
,其中值可以是 data[rowIndex][columnIdx]
.
bsb
已声明但后来未使用。- 代码正在将整个过滤后的数据添加到电子表格
Array.prototype.map
和它的回调在同一范围内声明,但在回调声明之前使用 map。我认为最好在调用之前声明它,或者声明回调全局范围,但这完全取决于你。考虑风格、可读性和可维护性。
资源
相关
- Declaring variables and functions, in what order?
- Create a custom callback in JavaScript