gpt4 book ai didi

javascript - 什么是编写代码的更简单的方法来总结 JavaScript 中包括空值和未定义的字符串的长度

转载 作者:行者123 更新时间:2023-11-30 07:50:31 26 4
gpt4 key购买 nike

我想在下面的检查中添加一些防御性编码。我有 3 个字符串,我想知道它们中是否有任何内容(出于我的目的,null 或 undefined 表示它们中没有任何内容)。

if (twitterUrl.length + facebookUrl.length + linkedInUrl.length > 0) {

这可行,但感觉非常笨重。我使用 TypeScript,但不确定是否有什么可以帮助我解决这个问题。

    if ((twitterUrl ? twitterUrl.length : 0) +
(facebookUrl ? facebookUrl.length : 0) +
(linkedInUrl ? linkedInUrl.length : 0) > 0) {

最佳答案

您可以利用空字符串是虚假¹ 的事实。如果您知道它们将是字符串或 nullundefined 并且您无需担心其中只有空格的字符串 ("" 是真实的¹),那么:

if (twitterUrl || facebookUrl || linkedInUrl) {

如果您需要担心 trim ,那么可能需要一个辅助函数:

function present(s) {
return s && (typeof s !== "string" || s.trim());
}

if (present(twitterUrl) || present(facebookUrl) || present(linkedInUrl)) {

if ([twitterUrl, facebookUrl, linkedInUrl].some(present)) {

¹ falsytruthy:当您在条件中使用一个值(如 if)时,JavaScript 会隐式将该值强制转换为一个 bool 值。强制为 false 的值是 falsy;强制为 true 的是 truthy。伪值是 ""nullundefined0NaN、当然,false。所有其他值(包括 "")都是真实的

关于javascript - 什么是编写代码的更简单的方法来总结 JavaScript 中包括空值和未定义的字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com