如何防止向数组添加空值

How to prevent adding empty value to the array?

本文关键字:添加 空值 数组 何防止      更新时间:2023-09-26

>我有一个脚本,它将抛出用户帐户并将现场手机的值推入数组。但是,当手机字段为空时,如何防止将空值推入数组?

所以相反,像这样的东西:'123,,,123,123,,123,,123'我想实现这个:[123,123,123,123,123].

这是代码的主要部分,用于检查值是否为空:

if (!smsUsers.user.mobile_phone.nil() || 
     smsUsers.user.mobile_phone != null || 
     smsUsers.user.mobile_phone != '' || 
     smsUsers.user.mobile_phone.length != 0 || 
     smsUsers.user.mobile_phone ||
     smsUsers.user.mobile_phone.toString().toLowerCase() != 'false'){
       notSccUserPhone.push(smsUsers.user.mobile_phone);
     }

这就是我的整个代码现在的样子:

function getMobileNumber(param) {  
    var sccUserPhone = [];
    var notSccUserPhone = [];                          
    var smsGroup = new CheckServices().getServiceParms("Major Incident", current, true);
    if(smsGroup.next()){
        var smsGroupNumber = smsGroup.u_parm_2;
        gs.log('Group of sms targets ' + smsGroupNumber);
        var smsUsers = new GlideRecord("sys_user_grmember");
        smsUsers.addQuery("group.name", smsGroupNumber);
        smsUsers.query();
        if(param == 'true'){
            while (smsUsers.next()) {
                if(smsUsers.user.email.indexOf('scc') == -1){
                    if (!smsUsers.user.mobile_phone.nil() || smsUsers.user.mobile_phone != null || smsUsers.user.mobile_phone != '' || smsUsers.user.mobile_phone.length != 0 || smsUsers.user.mobile_phone || smsUsers.user.mobile_phone.toString().toLowerCase() != 'false'){
                        notSccUserPhone.push(smsUsers.user.mobile_phone);
                    }
                }       
            }
            gs.log('Not SCC mobile namber array is ' + notSccUserPhone); 
            template.print(notSccUserPhone);
        } else if(param == 'false'){
            while (smsUsers.next()) {
                    if(smsUsers.user.email.indexOf('scc') != -1){
                        if (!smsUsers.user.mobile_phone.nil() || smsUsers.user.mobile_phone != null || smsUsers.user.mobile_phone != '' || smsUsers.user.mobile_phone.length != 0 || smsUsers.user.mobile_phone || smsUsers.user.mobile_phone.toString().toLowerCase() != 'false'){
                            sccUserPhone.push(smsUsers.user.mobile_phone);
                        }
                }
            }
            gs.log('SCC mobile namber array is ' + sccUserPhone);
            template.print(sccUserPhone);
        }
    }
}

您可以尝试像这样使用正则表达式:

if (smsUsers.user.mobile_phone != null &&
 smsUsers.user.mobile_phone.match(/'S/) &&
 smsUsers.user.mobile_phone.toString().toLowerCase() != 'false')
{
    notSccUserPhone.push(smsUsers.user.mobile_phone);
}

此外,您还需要将||更改为&&

正如杰奇林指出的那样,你没有及早检查null;我已将其移至上述检查的顶部。