Javascript 如何迭代YAML配置并获取选项?

Javascript 如何迭代YAML配置并获取选项?,javascript,node.js,configuration,yaml,config,Javascript,Node.js,Configuration,Yaml,Config,我有这个YAML配置文件: sheets: list1: name: 'sheet1' sql: 'SELECT' list2: name: 'sheet2' sql: 'SELECT' list3: name: 'sheet3' sql: 'SELECT' 我使用库js-yaml来解析yaml配置。 例如,我想将所有列表名记录在控制台日志中。我该怎么做?我在JS中有类似的内容: for(sheet in config.sheets)

我有这个YAML配置文件:

sheets:
  list1:
    name: 'sheet1'
    sql: 'SELECT'
  list2:
    name: 'sheet2'
    sql: 'SELECT'
  list3:
    name: 'sheet3'
    sql: 'SELECT'
我使用库js-yaml来解析yaml配置。 例如,我想将所有列表名记录在控制台日志中。我该怎么做?我在JS中有类似的内容:

for(sheet in config.sheets) {
    console.log(sheet.name);
}

当我在循环中执行
console.log(sheet)
时,我会得到列表1、列表2、列表3,但是
console.log(sheet.name)
在循环中不起作用。

您应该使用类似的工具,首先将
yaml
转换为
js文本

const yaml = require('js-yaml');
let data = yaml.safeLoad(config);
它将返回如下数据:

 {
       sheets: {
          list1: {
           name: "sheet1",
           sql: 'SELECT'
        },
......other lists
     }
   }
然后你可以简单地

const data = {
  sheets: {
    list1: {
      name: "sheet1",
      sql: 'SELECT'
    },
    list2: {
      name: "sheet2",
      sql: 'SELECT'
    }
  }
}

const name = Object.values(data.sheets).map(item => item.name)
console.log(values);

可能取决于您用来解析YAML的库。在你没有“太多时间”的情况下,解决问题的最快方法是搜索网页,看看其他人是如何解决的,而不是在这里等待答案。这是一个已解决的问题。是的,我同时做了……谷歌搜索和提问。但我没有时间进行配置,所以我可以在别人可能帮助我的时候做其他事情。我使用的库是'js-yaml',我不确定我是否理解--如果您使用的是js-yaml,它将配置文件转换为对象,那么具体的问题是什么?即使不清楚,仅仅转储解析过的文档肯定会提供一些关于如何处理数据的想法?