javascript - 即使语句为 false,Zap 内的 If/then 计算也会运行

标签 javascript formatter zapier

本质上,我试图做的是当用户以非标准格式输入数字时规避。例如:

150 万应该是 1500000

上一个 Zap 步骤使用“格式化程序”>“提取数字”功能提取数字。所以结果是变量rawNum,原始数字是noformatNum。

var str = inputData.noformatNum;
var n = inputData.noformatNum.includes ("million");
if (n = true) return {
 finalNum: Number(inputData.rawNum) * 1000000
};
else return { finalNum : inputData.noformatNum };

它的工作原理是完成操作并将 1.5 变为 1500000,但每次都会执行,即使 noformatNum 字符串中不包含“million”也是如此。我对 Javascript 并不是很有经验,但是在研究了 W3C 和 Zapier 文档几个小时后,我被难住了。任何帮助深表感谢。谢谢!

最佳答案

这里似乎存在一个小但重要的语法问题。您需要在条件中使用三个等号 === 而不是单个 =

如果(n = true)返回{

应该是

if (n === true) 返回 {

if...else 语句中,括号中的部分(“条件”)应该是计算结果为“真”或“假”值的内容。 (MDN)

n = true true 的值分配给变量 n,因此 JavaScript 会考虑整个事情无论如何,“真实”。

n === true ntrue 进行比较,这就是您想要的 if...else 语句起作用。该值将是“真”或“假”,具体取决于 n 的值。

关于javascript - 即使语句为 false,Zap 内的 If/then 计算也会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312118/

相关文章:

java - 当我想添加更多数据时如何不覆盖文本文件中已有的数据

asp.net-core - 用于 net core 3.1 Web Api 问题的自定义 OData 格式化程序

java - 如何在 Spring MVC Web 应用程序中注册格式化程序?

javascript - 来自 `triggers.new_booking.operation.perform` 的 Zapier 结果必须是一个对象数组

zapier - 上传文件到 Zapier Webhook

javascript - 防止 WebSocket 中第一条接收到的消息理论上丢失

Javascript 代码表现出意外的逻辑行为

javascript - 从 HTML 电子邮件中提取语音邮件转录 (Zapier)

JavaScript 函数无法从 HTML 文本区域检索字符串

javascript - 通过 Ajax 在 Grails 中执行 Controller 功能