javascript - 从函数内的函数返回值
问题描述
所以,我有一个函数用于迭代电子表格中的行。基于检查一些值,我需要返回一个值,如果没有,不应该返回。我不知道仅在函数(行)具有返回值的特定情况下如何返回。
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{
;
}});
}
解决方案
在 JavaScript 中嵌套函数时,不能从内部函数返回外部函数。
我建议使用for
循环而不是.forEach()
:
let data = sheetSource.getDataRange().getValues();
for(let row of data) {
/* Your code */
}
推荐阅读
- xml - VB.NET xml 节点
- android - ADMOB GDPR 测试弹出但不显示是或否
- css - 如何根据浏览器窗口大小缩放文本
- python - 根据 id 和日期范围合并 pandas 数据框
- c - 将节点插入到链表的尾部
- highcharts - 删除 Highcharts 中第一列和最后一列之前和之后的间隙
- vsto - Outlook 2010/2016 中自定义任务窗格和 WebBrowser 控件的焦点问题
- python - 使用 float 查询仅在 9.99 之前有效 - flask api
- android - 为什么即使在更新 SSL 证书后也无需更改固定在 android 应用程序中的证书?
- sql - 根据最新时间戳选择行