Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

171
Views
Return a value from a function within a function

So, I have a function that is used to iterate over rows within a spreadsheet. Based on checking some values, I need to return a value, if not, shouldn't return. I don't know how to return only in the specific cases when the function(row) has a return value.

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{
    ;
  }});
}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

In JavaScript when nesting functions, you can't return from an inner function for the outer function.

I recommend using a for loop instead of .forEach():

let data = sheetSource.getDataRange().getValues();
for(let row of data) {
   /* Your code */
}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!