我不确定设置方式是否是最好的方式。我正在使用Zapier更新电子表格并为购买的每种产品添加新行。购买信息将通过电子邮件输入,然后一个JS代码块将运行至:
我遇到的问题是识别其他产品并输出它们。第一个产品从行项目“ 46”或“ 48”开始(if / else的目的)。随后的每个产品名称(如果有)将在以后有5个订单项。例如,如果乘积从46开始,乘积2将为51,或者乘积1从48开始,乘积2将为53。我不知道如何创建循环遍历该行的循环或函数。项,识别每个产品,然后输出每个产品。
做到这一点的最佳方法是什么?另外,请查看我的代码,让我知道它是否可以以任何方式清理/简化。
这是我当前的代码:
//Define emailBody variable
var emailBody = input.emailBody;
//Find Index of blog and Subtotal and extracts data between
var blogIndex = emailBody.search("blog");
var subtotalIndex = emailBody.search ("SUBTOTAL");
var slice = emailBody.slice(subtotalIndex, blogIndex);
//Count # of SQ values
var countProducts = emailBody.search("SQ");
var splitSQ = slice.split("SQ");
const totalProducts = splitSQ.length;
const totalProductsLoop = totalProducts -1;
//Split email body by newline:
var splitBody = emailBody.split("\n");
var length = splitBody.length;
if (splitBody[46].length <2 && splitBody[47].length <2) {
var name = splitBody[26].trim();
var email = splitBody[31].trim();
var productName = splitBody[48].trim();
var productID = splitBody[49].trim();
var price = splitBody[51].trim();
// My attempt at trying to find additional products and output them
for(let i = 0; i < totalProductsLoop.length; i += 1){
var additionalProduct = productName[i] + 5;
return additionalProduct;
};
}
else if (splitBody[46].length >1) {
var name = splitBody[26].trim();
var email = splitBody[31].trim();
var productName = splitBody[46].trim();
var productID = splitBody[47].trim();
var price = splitBody[49].trim();
// My attempt at trying to find additional products and output them
for(let i = 0; i < totalProductsLoop.length; i += 1){
var newProductName = productName + 5;
var additionalProduct = newProductName ;
return additionalProduct;
};
}
var splitLength=splitBody[46].length;
var product = productName.concat("- ", productID);
//Output new variables
output = [{Blog_Index: blogIndex, Subtotal_Index: subtotalIndex, Splice: slice, Split_Length: splitLength, Length: length, Name: name, Email: email, Product_Name: productName, Product_ID: productID, Product: product, Price: price, Split: splitBody, Product_Split: splitSQ, Total_Products: totalProducts - 1, Additional_Products: productsNames}];
这是代码输出(简化为删除PII)
**Blog_Index**
value
**Subtotal_Index**
value
**Splice**
SUBTOTAL
Product 1
Product 1 ID
1
$50.00
$50.00
Product 2
Product 2 ID
1
$50.00
$50.00
Item Subtotal
Shipping & Handling
Sales Tax
TOTAL
$100.00
$0.00
$9.30
$100.00
**Split_Length**
19
**Length**
98
**Name**
Purchaser Name
**Email**
Purchaser Email address
**Product_Name**
Product 1
**Product_ID**
product ID 1
**Product**
product 1 - product ID 1
Price
$50.00
^^^ I need this extraction for every product purchase iteration^^^
**Split** // This splits all of the data into line items
1 - 45
46
Product Name 1
47
product ID
48
1
49
$50.00
50
$50.00
51
Product Name 2
52
product ID
53
1
54
$50.00
55
$50.00
56
57
58
59
60 - 98 value
**Product_Split**
0
SUBTOTAL
Product Name
1
3845354
1
$50.00
$50.00
Product Name 2
2
1760500
1
$50.00
$50.00
Item Subtotal
Shipping & Handling
Sales Tax
TOTAL
$100.00
$0.00
$9.30
$100.00
**Total_Products**
2