将对象键值与数组中的值匹配

时间:2016-03-04 21:32:56

标签: javascript regex

我在数组中有以下单词列表

var customerAlert = ['IsCustomerAlert', 'CustomerAlertTitle', 'CustomerAlertShortDescription', 'CustomerAlertLongDescription','CustomerAlertMoreURL'];

我有一个类似于以下内容的对象

   var obj = {
      "Primary Key": "0",
      "title": "",
      "show_csr": "",
      "IsCustomerAlert": "",
      "CustomerAlertTitle": "",
      "CustomerAlertShortDescription": "",
      "CustomerAlertLongDescription": "",
      "CustomerAlertMoreURL": ""
    }

我的目标是浏览对象并查找数组中指定的键值,如果返回true,请检查该键是否在对象中具有空值,以及它是否动态地向其追加“null”。

我目前的思考过程是

for (var key in obj){
   if(customerAlert.match(Regex(key)) && obj[key] === ""){
         obj[key] = "null";
   }
}

有没有更好的声明方式或必要的方法来实现这一点,也不确定正则表达式用于匹配值?

1 个答案:

答案 0 :(得分:1)

在这种情况下,您实际上不需要使用正则表达式。使用Array.indexOf方法:

for (var key in obj){
   if (customerAlert.indexOf(key) !== -1 && obj[key] === "") {
         obj[key] = "null";
   }
}