转换键变量名称中的字符串

时间:2018-03-04 15:40:40

标签: elm

有可能将字符串转换为键,例如:

const phones = [
  {
    price: 300,
    model: 'REDMI 5',
    color: 'black',
    4G: 'yes',
    3G: 'yes',
    'type sim card': 'nano',
    'dual sim': 'yes',
    EAN: '8806088938523',
  },
  {
    price: 323,
    model: 'GALAXY J3 2017 J330 DS SILVER',
    color: 'white',
    4G: 'yes',
    3G: 'yes',
    'type sim card': 'nano',
    'dual sim': 'yes',
    EAN: '8806088938424',
  },
  {
    price: 399,
    model: 'DESIRE 628 DS TERRA WHITE',
    color: 'pink',
    4G: 'yes',
    3G: 'yes',
    'type sim card': 'nano',
    'dual sim': 'yes',
    EAN: '8806088938444',
  }
]

我想要实现的目标:

type alias Model =
  { sun : Int  -- Init with 0
  , moon : Int -- Init with 0
  }

在model.sun之后应该1

1 个答案:

答案 0 :(得分:4)

由于对记录的访问不起作用,您将无法完全按照自己的意愿行事。在你的情况下,我会推荐一个词典

type alias Model =
  { planets : Dict String Int
  }


planets = 
    Dict.fromList 
        [ ("sun", 0)
        , ("moon": 0)
        ]
model = { planets = planets }

然后

let
  userSelect = "sun";
in
 ({ model | planets = Dict.insert userSelect 1 model.planets }, Cmd.none)