【发布时间】:2021-11-12 13:49:34
【问题描述】:
所以,我有一个函数用于迭代电子表格中的行。基于检查一些值,我需要返回一个值,如果没有,不应该返回。我不知道只有在函数(行)有返回值的特定情况下如何返回。
function GetOldAreaSize(ID, area_changed, change_doc, area_kha, sheetSource) {
var data = sheetSource.getDataRange().getValues();
data.forEach(function (row) {
if (row[0] == ID) {
var area_changed_old = row[4];
var change_doc_old = row[2]+row[3];
var area_kha_old = row[15];
if (area_changed == area_changed_old) {
if (change_doc == "MR1") {
if (change_doc_old == "PDD1") {
var old_area = parseFloat(area_kha_old);
Logger.log(old_area+" - "+parseFloat(area_kha))
return parseFloat(area_kha_old);
}} else if (change_doc == "MR2") {
if (change_doc_old == "MR1") {
Logger.log(area_kha_old+" - "+parseFloat(area_kha))
return parseFloat(area_kha_old);
}} else if (change_doc == "MR3") {
if (change_doc_old == "MR2") {
Logger.log(area_kha_old+" - "+parseFloat(area_kha))
return parseFloat(area_kha_old);
}} else if (change_doc == "MR4") {
if (change_doc_old == "MR3") {
Logger.log(area_kha_old+" - "+parseFloat(area_kha))
return parseFloat(area_kha_old);
}} else if (change_doc == "MR5") {
if (change_doc_old == "MR4") {
return parseFloat(area_kha_old);
}} else if (change_doc == "MR6") {
if (change_doc_old == "MR5") {
return parseFloat(area_kha_old);
}}
else {
;
}
}
} else{
;
}});
}
【问题讨论】:
-
return回调中的return语句永远不会对任何内容产生任何影响,因为.forEach()不注意返回值。 -
您不能从内部函数内部的外部函数返回。看来您需要使用
filter或reduce而不是forEach。
标签: javascript function google-apps-script lambda