将Iterable转换为javascript / typescript中的列表

时间:2017-01-16 17:54:42

标签: javascript list reactjs

我有一张地图(字符串 - >字符串),我想将其转换为一个列表,以便能够调用" map"在它上面将其转换为其他值的列表。背景是,我想在像这样的reactjs组件中使用它:

<input type="select">
{props.options.entries().toList().map((type,i) => {
                return <option value={type[0]} key={i}>{type[1]}</option>
})
}
</input>

现在,entries()给了我一个可迭代的。但它没有&#34; toList&#34;。我该如何进行转换?

1 个答案:

答案 0 :(得分:0)

在反应组件'render函数中,

render: function() {
  return (
  <Root>
  ...
  {props.options.entries().toList().map((type,i) => {
    return <option value={type[0]} key={i}>{type[1]}</option>
  })
  ...
  </Root> )
}

与以下内容完全不同:

render: function() {
  let optionList = props.options.entries().toList().map((type,i) => {
    return <option value={type[0]} key={i}>{type[1]}</option>
  }

  return (
  <Root>
  ...
  {optionList}
  ...
  </Root> )
}

并没有什么不同:

render: function() {
  let optionList = []
  // iterate through this iterable(pseudo, as the iterable interface is needed)
  let entries = props.options.entries()
  while (entries.hasNext()) {
    optionList.push(entries.next())
  }
  optionList.map((type,i) => {
    return <option value={type[0]} key={i}>{type[1]}</option>
  }

  return (
  <Root>
  ...
  {optionList}
  ...
  </Root> )
}