Метод поиска JSON для частичного совпадения значений и применения свойства - PullRequest
0 голосов
/ 04 июня 2019

Привет! Мне нужно найти в ответе 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"
}]

}

Ответы [ 3 ]

2 голосов
/ 04 июня 2019

Вы можете выполнить цикл по массиву columnPermissions и установить свойство IDM в зависимости от того, будет ли columnName startsWith "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)
0 голосов
/ 04 июня 2019
const newResponse = response.columnPermissions
    .map(c=> { ...c, 'IDM': c.columnName.includes('IDM_') });
0 голосов
/ 04 июня 2019

Я думаю, вы могли бы сделать это так:

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_') });
...