React:将map()的结果推送到数组

时间:2020-07-31 15:47:49

标签: reactjs

您好,我正在尝试映射对象数组并将其推送到新数组。

我的问题:仅将对象的最后一项推入新数组

我相信这与React生命周期方法有关,但我不知道该在哪里循环并将值推入数组以获取完整列表


//My object in an array named states
var states = [{"_id":"Virginia","name":"Virginia","abbreviation":"VN","__v":0},{"_id":"North Carolina","name":"North Carolina","abbreviation":"NC","__v":0},{"_id":"California","name":"California","abbreviation":"CA","__v":0}];

export function StateSelect()
{
   **EDIT 1**
    const options = [];

 function getStates()
{
//This is how I am looping through it and adding to an array

   { states.length > 0 &&
    states.map(item =>
    (
      console.log(`ITEM: ${JSON.stringify(item)}`),
      options.push([{ value: `${item.name}`, label: `${item.name}`}])
     ))
   }
}

return(  {getStates()}: );

}

谢谢

2 个答案:

答案 0 :(得分:0)

看起来您的getStates()可能甚至没有返回任何东西...但是假设是这样,我相信您应该能够使用forEach() fn来完成此操作,以便将值推入您的{{ 1}}数组...尝试将以下内容添加到地图中:

options

答案 1 :(得分:0)

.map通常用于返回另一个结果,您可以只使用.forEach

实际上,您根本不需要声明options,只需在状态上使用.map即可返回结果。

return states.length > 0 && states.map(({ name }) => {
  return { value: name, label: name };
});