如何阅读文件&存储键:字符串数组中的值对?

时间:2016-02-20 00:25:27

标签: ruby-on-rails arrays ruby ruby-on-rails-3

我有一个包含以下数据的咖啡脚本文件。我想创建一个字符串数组,将以下数据存储为键:值对。

abTests:
    productRanking:
      version: 4
      groups: [
        ratio:
          default: 1
          us: 0.90
          me: 0.0
        value: "LessPopularityEPC"
      ,
        ratio:
          default: 0
          us: 0.1
        value: "CtrEpcJob"
      ,
        ratio:
          default: 0
          me: 1.0
        value: "RandomPerVisitor"
      ]
    sabt:
      version: 1
      groups: [
        ratio:
          default: 1
          us: 0.90
        value: "default"
      ,
        ratio:
          default: 0
          us: 0.05
        value: "colorBoost"
      ,
        ratio:
          default: 0
          us: 0.05
        value: "colorPriority"
      ,
        ratio:
          default: 0
          us: 0
        value: "noColorClause"
      ]

我想用以下格式创建一个包含这些数据的字符串数组

productRanking:LessPopularityEPC
productRanking:CtrEpcJob
productRanking:RandomPerVisitor
sabt:default
sabt:colorboost
sabt:colorPriority
sabt:nocolorClause

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果是字符串数组,则表示此

data = abTests:
  ...

array = []
for testName,tests of data['abTests']
  for categoryName,categoryElems of tests['groups']
    array.push (testName + ':' + categoryElems['value'])

console.log array
#=> ['productRanking:LessPopularityEPC', 'productRanking:CtrEpcJob', 'productRanking:RandomPerVisitor']

您可以使用以下coffeescript代码执行此操作

"{y: 39,ratio: 150}",...,"{y: 40,ratio: 364}"