首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从正则表达式循环中获取哈希值?

从正则表达式循环中获取哈希值?
EN

Stack Overflow用户
提问于 2020-05-02 20:56:33
回答 2查看 47关注 0票数 0

我有一个如下所示的JSON对象,我想循环遍历与u[0-9][0-9][0-9]匹配的条目。This answer与我要找的很接近,但我想要的是获得散列值。

如果我这样做了:

代码语言:javascript
复制
const config = toml('config.toml')

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

然后我得到以下错误:

代码语言:javascript
复制
TypeError: config.match is not a function

问题

如何遍历这个JSON对象并从与u[0-9][0-9][0-9]匹配的键中获取值

代码语言:javascript
复制
{ 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' } } }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-02 21:18:56

代码语言:javascript
复制
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]数组。

票数 2
EN

Stack Overflow用户

发布于 2020-05-02 21:19:09

正如您尝试使用.match()的注释中所提到的,您只需将config.conf转换为数组,然后使用Object.keys()遍历它,以下是您想要的代码片段:

代码语言:javascript
复制
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);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61559727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档