簡體   English   中英

javascript哈希值驗證

[英]javascript hash values validation

我試圖給我的哈希數組中的4個值相同的行為。

例如:

var array = {};

  if (array[key].config.tmp == undefined) {
               array[key].config.tmp = {}
            }
            if(array[key].config.tmp.tp1){

            }
            if(array[key].config.tmp.tp2){

            }
            if(array[key].config.tmp.tp3){

            }
            if(array[key].config.tmp.tp4){

            }

由於tp1,tp2,tp3和tp4具有相同的行為。 我想簡化驗證。

就像是:

array [key] .config.tmp。[tp1,tp2,tp3,tp4]可以嗎? 已經嘗試過。 但這是

tp1,tp2,tp3和tp4可能不存在(未定義)。 (有時只有tp1和tp2)。

有什么建議可以避免重復代碼嗎?

提前致謝

使用||類的短路運算符 例如,如果您要檢查是否存在多個屬性,則訪問不存在的屬性是錯誤的。

var c = a[key].config.tmp.a  || a[key].config.tmp.b || .... || //default

在此示例中,c將保留其中第一個的值以求值為true。 如果它們都返回false,則還可以在最后添加一個“默認”值。 請記住,訪問不存在的屬性的屬性是類型錯誤,因此,必須確保至少存在config.tmp。 因此,您可以將代碼替換為

if (a[key].config.tmp.a  || a[key].config.tmp.b || ....) {

}

您還可以在數組鍵上使用過濾器:

if ( ( array[key].config.tmp || {} ).keys().filter(
    function(k) { return /^tp[1234]/.test( k ) }
).length ) )

暫無
暫無

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

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