如果/然后在Zap内运行,即使语句为false也是如此

时间:2018-01-18 00:26:30

标签: javascript formatter zapier

基本上我尝试做的是绕过用户输入非标准格式的号码。例如:

150万应该是1500000

上一个Zap步骤使用Formatter>提取数字。提取数字功能。因此结果是变量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不包括"百万"在字符串中。我对Javascript没有超级经验,但是经过几个小时的挖掘W3C和Zapier文档后,我感到难过。任何帮助深表感谢。谢谢!

1 个答案:

答案 0 :(得分:1)

看起来这里有一个小但重要的语法问题。您需要在条件中使用三等号===而不是一个=

if (n = true) return {

应该是

if (n === true) return {

if...else语句中,括号中的部分(“条件”)应该是评估“truthy”或“falsy”值的东西。 (MDN

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

n === true ntrue进行比较,这是if...else语句的工作原理。根据{{​​1}}的值,该值将为“truthy”或“falsy”。