簡體   English   中英

如何防止將空值添加到數組?

[英]How to prevent adding empty value to the array?

我有一個腳本,該腳本將拋出用戶帳戶並將現場手機的價值推向陣列。 但是,當手機字段為空時,如何防止將一個空值壓入數組?

所以相反,這樣的事情: '123,,,123,123,,123,,123'我想達到這個目標: [123,123,123,123,123]

這是檢查value是否為空的代碼的主要部分:

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);
}

另外,您還需要更改|| &&的。

作為djechlin指出 ,你不檢查null夠早; 我已將其移至上述檢查的頂部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM