首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >0值不会使用Google脚本出现简单邮件合并

0值不会使用Google脚本出现简单邮件合并
EN

Stack Overflow用户
提问于 2018-05-25 11:50:51
回答 1查看 69关注 0票数 0

在使用以下脚本时,如果我在电子邮件模板中指示的列的单元格中的值为"0“,则它不会出现在发送的最终电子邮件中。

它被空字符串替换,就好像单元格是空的一样。

我想问题就在这句话中:

代码语言:javascript
运行
复制
// Replace variables from the template with the actual values from the data object.
// If no value is available, replace with the empty string.
for (var i = 0; i < templateVars.length; ++i) {
// normalizeHeader ignores ${"} so we can call it directly here.
var variableData = data[normalizeHeader(templateVars[i])];
email = email.replace(templateVars[i], variableData || "");
}

但是,如果删除布尔符号而只留下"variableData“,问题就会在空单元格上移动(在发送的电子邮件中显示0值,但空单元格在电子邮件文本中作为”未定义“返回)。

我希望有人能帮我。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-25 12:12:27

欢迎来到JavaScript,其中0、''""nullundefined都意味着false-y。

您面临的问题是,||执行的逻辑OR使用非严格的等式比较,因此当variableData为0时,类型转换为false (以及所需的nullundefined转换),并选择""的替代。

要解决这个问题,您需要在替换variableData之前对它的值执行更严格的检查。

例如,可以使用三元操作符:

代码语言:javascript
运行
复制
var variableData = ...
variableData = (!variableData && variableData !== 0) ? "" : variableData

这将用""替换其他false-y值,但允许用数值0替换。还请注意,String(0)是真实的,所以如果您将找到的变量作为字符串返回,短路操作符应该会产生所需的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50528574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档