我有3个不同的状态companies
,projects
和releases
。
this.state = {
companies: [],
projects: [],
releases: []
}
获取并更新所有3种状态后,它们都包含数据:
componentWillMount() {
getCompanys().then(companies => {
const projectPromises = companies.map((company) => {
getProjects(company).then(projects => {
const releasePromises = projects.map((project) => {
return getReleases(project).then(releases => {
if(projects.length > 0 || releases > 0) {
this.setState({
companies: companies,
projects: projects,
releases: releases
});
}
})
})
})
});
})
}
现在,我的问题是是否要创建一个新数组并仅存储 company_name ,公司描述, project_name ,项目的说明,版本名称和版本的说明,我该怎么做?是否可以仅将这些信息存储到新数组中,然后仅循环新数组以显示这些信息,这样我就不必循环所有3个状态的数组?
这是我想要的输出内容:
newArray = [
{
company_name: 'IBM',
company_description: 'Comp description',
project_name: 'Project 101',
project_description: 'Proj description',
release_name: 'Release 101',
release_description: 'Rel description'
}
]
完整的输出数据:
答案 0 :(得分:1)
如果他们在所有公司中都有相同的信息,则可以查看公司的长度。例如,如果company[0]
具有您的compnay_name和company_description,而projects[0]
具有同一公司的project_name和project_description,则您可以执行以下操作。
var newArray = [];
for(var i = 0; i < company.length; i++){
newArray.push(
{
company_name: this.state.companies[i].company_name,
company_description: this.state.companies[i].company_description,
project_name: this.state.projects[i].project_name,
project_description: this.state.project[i].project_description,
release_name: this.state.releases[i].release_name,
release_description: this.state.releases[i].release_description
}
)
}
然后使用该数组执行任何操作。将其添加到状态中,以使用您在其他地方或那里拥有的东西。