Skip to main content
Question

Zapier JavaScript not working with (for i=0) loops

  • December 5, 2021
  • 2 replies
  • 176 views

Hello, 

 

To cut things short, I am experiecing errors when creating JS for-loops with Zapier Code. I have pasted in some dummydata instead of working with inputData for arguments sake. Whenever I try to run this code, I always get an error that ā€˜iā€™ is not defined. 

 

The point is that I am looking for a targetID, given that it matches my originalName. To my understanding there isnā€™t anything wrong with the code. Perhaps someone could point out what Iā€™m obviously not seeing? Biggest thanks!

 

var originalItemName = 'Banana';
var targetItemIDs = [123, 456, 951, 654, 321, 147];
var targetItemNames = ['Apple', 'Kiwi', 'Pineapple', 'Mango', 'Pear', 'Banana'];

for (i=0; i < targetItemIDs.length; i++) {
  if (originalItemName === targetItemNames[i]) {
    var newItemName = targetItemNames[i];
    var newItemID = targetItemIDs[i];
  return {newItemName: newItemName, newItemID: newItemID }
  }
}

Here is a screenshot of the result: 

 

Did this topic help you find an answer to your question?
This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

2 replies

  • Author
  • New
  • 1 reply
  • December 5, 2021

Update: It works this way for just dummydata. But the moment I use  the inputData I keep getting errors that my output is not defined. 

 

This is the code with dummy data:

var originalItemName = 'Apple';
var targetItemIDs = [123, 456, 951, 654, 321, 147];
var targetItemNames = ['Apple', 'Kiwi', 'Pineapple', 'Mango', 'Pear', 'Hoi hoi'];

var i = 0;
for (i; i < targetItemIDs.length; i++) {
  if (originalItemName === targetItemNames[i]) {
    var newItemName = targetItemNames[i];
    var newItemID = targetItemIDs[i];
  return {newItemName: newItemName, newItemID: newItemID }
  }
}

The result of it:

 

 

This is the code where i replace the simplest variable with my inputdata:

var originalItemName = JSON.stringify(inputData.originalName);  // This equals 'Hoi hoi'
var targetItemIDs = [123, 456, 951, 654, 321, 147];
var targetItemNames = ['Apple', 'Kiwi', 'Pineapple', 'Mango', 'Pear', 'Hoi hoi'];

var i = 0;
for (i; i < targetItemIDs.length; i++) {
  if (originalItemName === targetItemNames[i]) {
    var newItemName = targetItemNames[i];
    var newItemID = targetItemIDs[i];
  return {newItemName: newItemName, newItemID: newItemID }
  }
}

This is the error:

 

As soon as I do work with ā€˜outputā€™ instead of ā€˜returnā€™, I receive errors like: unexpected ā€˜{ā€˜. Iā€™m clueless why this code wonā€™t work with variable data.


Troy Tessalone
Forum|alt.badge.img+14