微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将对象数组中的项目映射到另一个数组中的状态

如何解决如何将对象数组中的项目映射到另一个数组中的状态

我知道标题听起来很多余,但是也许更具体的解释会有所帮助。我正在从提取请求中检索项目,并将其作为对象数组返回。我创建了一个函数,该函数将请求的数据存储到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 举报,一经查实,本站将立刻删除。