【问题标题】:Method to search JSON for a partial value match and apply a property在 JSON 中搜索部分值匹配并应用属性的方法
【发布时间】:2019-10-19 20:05:33
【问题描述】:

您好,我需要在 JSON 响应中搜索以特定字符串模式开头(仅开头)的键“columnName”的所有值...

"IDM_"

对于所有匹配项,我想在每个对象上包含一个键/值 "IDM":true 和任何不匹配项 "IDM":false。

提前致谢。

{
"columnPermissions": [{
    "$id": "1474",
    "columnName": "IDM_ID"
}, {
    "$id": "1475",
    "columnName": "IDM_CreateDate"
}, {
    "$id": "1476",
    "columnName": "IDM_CreatedBy"
}, {
    "$id": "1480",
    "columnName": "First_Name"
}, {
    "$id": "1481",
    "columnName": "Last_Name"
}]

}

【问题讨论】:

  • 请阅读How to Ask。本网站不是代码编写服务,我们希望您首先向我们展示迄今为止为解决问题所做的尝试。

标签: javascript typescript angular-cli-v6


【解决方案1】:

可以循环遍历columnPermissions数组,根据columnName是否startsWith“IDM_”设置IDM属性

const input = {"columnPermissions":[{"$id":"1474","columnName":"IDM_ID"},{"$id":"1475","columnName":"IDM_CreateDate"},{"$id":"1476","columnName":"IDM_CreatedBy"},{"$id":"1480","columnName":"First_Name"},{"$id":"1481","columnName":"Last_Name"}]}

input.columnPermissions.forEach(a =>
  a.IDM = a.columnName.startsWith("IDM_")
)

console.log(input)

【讨论】:

    【解决方案2】:

    我认为你可以这样做:

    let data = JSON.parse({
    "columnPermissions": [{
      "$id": "1474",
      "columnName": "IDM_ID"
      }, {
      "$id": "1475",
      "columnName": "IDM_CreateDate"
      }, {
      "$id": "1476",
      "columnName": "IDM_CreatedBy"
      }, {
      "$id": "1480",
      "columnName": "First_Name"
      }, {
      "$id": "1481",
      "columnName": "Last_Name"
      }]
    });
    
    data = data.columnPermissions.map(column => Object.assign({}, { 'IDM': 
    column.columnName.includes('IDM_') });
    

    【讨论】:

      【解决方案3】:
      const newResponse = response.columnPermissions
          .map(c=> { ...c, 'IDM': c.columnName.includes('IDM_') });
      

      【讨论】:

      • 你能解释一下你的代码是做什么的以及它是如何回答这个问题的吗?纯代码答案对未来或没有经验的读者没有太大帮助。
      • 请始终添加一些解释以改进您的答案
      猜你喜欢
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 2013-09-11
      • 2021-09-12
      相关资源
      最近更新 更多