如何匹配键的String模式以使用JavaScript获取数组的值?

时间:2017-02-08 12:25:51

标签: javascript

我有以下代码段。我需要将它添加到循环中。我能遵循的最佳方式是什么。

将名为Data的js对象传递给以下JavaScript方法,我需要检查是否为某些键分配了值""。目前我正在使用' if'声明如下,但我想用循环实现这一点。

privateMethods.generatePasswordDataPayload = function (Data) {
        if (Data["passwordLength"] == "") {
            Data["passwordLength"] = null;
        }
        if (Data["passwordComplexCharactors"] == "") {
            Data["passwordComplexCharactors"] = null;
        }
        if (Data["passwordExpTime"] == "") {
            Data["passwordExpTime"] = null;
        }
        if (Data["passwordHistory"] == "") {
            Data["passwordHistory"] = null;
        }
        if (Data["passwordAttempts"] == "") {
            Data["passwordAttempts"] = null;
        }
 }

我可以使用任何正则表达式模式并执行类似下面的操作(伪代码)

var i = 0;
while (Data.length >= i){
  if ((Data["password(regex pattern check)") == ""){
   (Data["password(regex pattern check)") == null;
  }
 i++;
}

请注意我在这里使用JavaScript。

2 个答案:

答案 0 :(得分:1)

如果您想列出每个属性并设置一个值,您可以执行this

之类的操作
for(objectName in Data) { 
     if(Data[objectName]=="") {
          Data[objectName] == null;
    }
}

答案 1 :(得分:0)

String.prototype.indexOf将返回作为参数传递的字符串的第一个出现的索引。因此,要获取以use Try::Tiny; try { $dbh->begin_work; $dbh->do( ... ); $dbh->commit; catch { warn "Transactino aborted because $_"; try { $dbh->rollback }; }; 开头的所有密钥,您必须检查"password"是否返回indexOf("password")(如果它返回0,则密钥以{{1}开头},否则它没有。

0