如何删除返回值,如果变量是空白的javascript

How to delete return value if variable is blank in javascript

本文关键字:变量 如果 空白 javascript 返回值 何删除 删除      更新时间:2023-09-26

我写了一个函数:

function abcd(gg,hh,ii,jj){
return "Hi,'n'nBelow is alert."'n'n"+gg+"'n"+hh+"'n"+ii+"'n"+jj+";
}

,其中4个变量gg,hh,ii,jj已经全局写入和动态调用。其中"gg"包含"Approval is done","hh"包含"Approval is done","ii"包含"Approval is done","jj"包含"Approval is done"。我担心的是,有时我有gg, hh, ii或jj的值,有时没有,我得到的输出如下,如果我有上述所有变量的值函数代码:

Hi,
Below is alert.
Approval is done.
Approval is done.
Approval is done.
Approval is done.

所以如果'ii'是空白的,那么我需要如下,但我的代码返回行空间,如果'ii'是空白的:

Hi,
Below is alert.
Approval is done.
Approval is done.
Approval is done.

最干净的可能是这样的:

function abcd(gg,hh,ii,jj){
    return "Hi,'n'nBelow is alert.'n'n" 
        + (gg ? gg + "'n" : '')
        + (hh ? hh + "'n" : '')
        + (ii ? ii + "'n" : '')
        + jj;
}

三元运算符(?:)的格式为condition ? if_true : if_false。您可以检查字符串上的"假"值(null''都计数为假),因此它只会输出非假的内容。

如果ii将是一个空字符串,这里有一个快速修复:

function abcd(gg,hh,ii,jj){
return "Hi,'n'nBelow is alert.'n'n" + [gg,hh,ii,jj].filter(Boolean).join("'n");
}

.filter(Boolean)基本上过滤空字符串,(因为这些将返回false,这是一个boolean)。

.join("'n")将数组转换为string,但使用'n而不是,

您可以使用Array.filter过滤掉空白的,然后将它们连接起来:

function getNonBlanks(array) {
    return array.filter(function (i) {
        // we only want items with a length
        return i.length > 0;
    });
}
function abcd(gg,hh,ii,jj){
    return "Hi,'n'nBelow is alert.'n'n" + getNonBlanks([gg,hh,ii,jj]).join("'n");
}