在数组对象内循环

时间:2016-07-07 13:41:35

标签: javascript arrays loops object reactjs

我使用react-select并希望循环浏览一个对象,将其表示为选择的值和标签:

// Inside the component's render:

var myVar = [
  this.props.foo.forEach(function(a){
    {value: a.name, label: a.name} // line 83
  })
];

//return

<Select ref="stateSelect" options={myVar} simpleValue clearable={this.state.clearable}
  name=""
  value={this.state.bar} onChange={this._myFunc} 
/>

this._myFunc与此问题无关。我想得到这样的东西:

var myVar = [
  {value: "hello", label: "world"},
  // the list goes on
];

通过上面的代码,我得到了:

  

解析错误:第83行:意外的令牌:

我没有那么强大的JavaScript来找出这个解决方案,但这可能吗?阅读链接?

2 个答案:

答案 0 :(得分:2)

如果您打算使用myVar中的一系列对象初始化this.props.foo,请尝试

var myVar = this.props.foo.map(function(a){
    return {value: a.name, label: a.name} ;
});

答案 1 :(得分:1)

最好的是渲染fct循环,如下所示:

render (){
 return (
  <div>
   <Select
     ref="stateSelect"
     options={
      this.props.foo.map( (a) => {name: a.name, label: a.name} )
     }
     simpleValue
     clearable={this.state.clearable}
     name=""
     value={this.state.bar}
     onChange={this._myFunc} 
   />
  </div>);
}