您好,我正在尝试映射对象数组并将其推送到新数组。
我的问题:仅将对象的最后一项推入新数组
我相信这与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()}: );
}
谢谢
答案 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 };
});