Получение значений ha sh из регулярного выражения l oop? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть объект JSON, как показано ниже, где я хотел бы l oop над записями, которые соответствуют u[0-9][0-9][0-9]. Этот ответ близок к тому, что я ищу, но я хочу получить значения ha sh.

Если я сделаю:

const config = toml('config.toml')

config.match(/u[0-9][0-9][0-9]/g).forEach((element) => {
  console.log(element)
});

Затем я получаю следующую ошибку:

TypeError: config.match is not a function

Вопрос

Как бы я oop обработал этот JSON объект и получил бы значение из ключей, соответствующих u[0-9][0-9][0-9]?

{ conf:
   { url: 'https://example.com',
     u150: 'Log entry severity',
     u160: 'Log entry',
     d105: 'Check interval',
     d107: 'Incident cool down time',
     d120: 'Incident impact',
     d130: 'Incident urgency',
     d180: 'Implementeret i Produktion' },
  projects:
   { d1:
      { page_id: 104637,
        page_title: 'Moni' },
     k1:
      { page_id: 99999,
        page_title: 'Moni' } } }

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

const config = { conf:
   { url: 'https://example.com',
     u150: 'Log entry severity',
     u160: 'Log entry',
     d105: 'Check interval',
     d107: 'Incident cool down time',
     d120: 'Incident impact',
     d130: 'Incident urgency',
   }
} // shortened your object

const matches = [];

for (let [key, value] of Object.entries(config.conf))
  {
    if(key.match(/u[0-9][0-9][0-9]/g))
      matches.push({ key, value })
  }
  
console.log(matches)  

Я пришел с этой идеей. В основном я разбил объект на массив [key, value].

1 голос
/ 02 мая 2020

Как уже упоминалось в комментарии, который вы пытаетесь использовать .match(), вы можете просто преобразовать config.conf в массив, а затем выполнить итерацию по нему, используя Object.keys(), вот фрагмент того, что вы хотите:

let config = { conf:
   { url: 'https://example.com',
     u150: 'Log entry severity',
     u160: 'Log entry',
     d105: 'Check interval',
     d107: 'Incident cool down time',
     d120: 'Incident impact',
     d130: 'Incident urgency',
     d180: 'Implementeret i Produktion' },
  projects:
   { d1:
      { page_id: 104637,
        page_title: 'Moni' },
     k1:
      { page_id: 99999,
        page_title: 'Moni' } } }

const conf = {}
const matched = Object.keys(config.conf).filter(el => {
  return el.match(/u[0-9]{3}/g);
}).forEach(el => conf[el] = config.conf[el]);

console.log(conf);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...