如何解决如何将对象数组中的项目映射到另一个数组中的状态
我知道标题听起来很多余,但是也许更具体的解释会有所帮助。我正在从提取请求中检索项目,并将其作为对象数组返回。我创建了一个函数,该函数将请求的数据存储到const变量中,该变量会映射到每个数组项中,并从每个数组项返回item.date_created值。然后我的问题是如何获取每个date_created值并将它们存储在传递给state的另一个数组中。
当尝试将每个值存储在数组中时,它将为每个项目创建一个数组,而不是仅将所有值存储在其中的一个数组。我知道.map函数的目的是分别隔离和返回每个值,因此我的问题是如何将它们传递给一个特定的数组而不是单个数组。如果这样做是完全错误的方法,请提供一种方法来完成此操作。
返回值:
entries: Array(10)
0: {4: "X",5: "X",6: "X",7: "X",8: "X",9: "X",id: "X",form_id: "X",post_id: null,date_created: "2020-08-01 01:28:59",date_updated: "2020-08-10 01:28:59",…}
1: {4: "X",date_created: "2020-08-10 02:56:03",date_updated: "2019-11-08 02:56:03",…}
我的代码结构如下:
fetchStartSubmissions = () => {
const fetchStart = moment(this.state.startDate).format('yyyy-MM-DD');
const resData = this.state.formEntries.entries;
resData.map(item => {
if (item.date_created = fetchStart) {
var items = [item.date_created];
console.log(items);
this.setState({
startItems: [items],});
}
})
}
输出:
["2020-08-01"]
["2020-08-10"]
解决方法
已编辑为date_created
的新结构。
为此使用Array#map。
let entries = [
{4: "X",5: "X",6: "X",7: "X",8: "X",9: "X",id: "X",form_id: "X",post_id: null,date_created: "2020-08-01 01:28:59",date_updated: "2020-08-10 01:28:59"},{4: "X",date_created: "2020-08-10 02:56:03",date_updated: "2019-11-08 02:56:03"}
];
let result = entries.map( ({date_updated}) => date_updated.split(' ')[0] );
console.log(result);
,
您可以使用reduce将数据添加到新阵列中。还可以使用子字符串来切断hh:mm:ss
const arr = [{
4: "X",date_created: "2020-08-01",date_updated: "2020-08-10 01:28:59"
},{
4: "X",date_created: "2020-08-10",date_updated: "2019-11-08 02:56:03"
}]
const result = arr.reduce((acc,{
date_created
}) => {
const date = date_created.substring(date_created.indexOf(' '));
acc.push(date);
return acc;
},[]);
console.log(result)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。