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

Match the object key value to an value from an array

本文关键字:数组 对象 键值      更新时间:2023-09-26

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

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

是否有更好的声明式方式或命令式方法来实现这一目标,并且不确定用于匹配值的正则表达式?

在这种情况下,

您实际上不需要使用正则表达式。使用Array.indexOf方法:

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