javascript哈希值验证

javascript hash values validation

本文关键字:验证 哈希值 javascript      更新时间:2023-09-26

我正试图为哈希数组中的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只是有时)。

有什么建议让我不会重复代码吗?

提前感谢

您也可以在数组键上使用过滤器:

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

使用类似||的短路运算符。例如,如果您正在检查是否存在多个属性,那么访问不存在的属性是错误的。

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

在本例中,c将保持其中第一个的值,以评估为true。如果它们都返回false,您也可以在末尾包含一个"Default"值。请记住,访问不存在的属性的属性是一个类型错误,因此必须确保至少存在config.tmp。所以你可以用替换你的代码

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