遍历对象的嵌套数组

时间:2018-08-04 16:51:08

标签: javascript arrays javascript-objects

因此,我有一个对象数组userEvents,我想在对象内部使用event数组。 event数组也存储对象,我试图在其中访问start属性并对其进行更改。我当时在考虑嵌套地图功能,但没有成功。我附加了userEvents enter image description here

数组的控制台日志
const { events } = this.props.events;
    const userEvents = events

2 个答案:

答案 0 :(得分:1)

只提供

  

访问start属性

userEvents.forEach(userEvent => userEvent.events
  .forEach(event => { console.log(event.start) })
)

答案 1 :(得分:0)

您有一个基本上可以简化此过程的数组:

let userEvents = [
  {events: [{start: 1},{start: 2}]},
  {events: [{start: 3},{start: 4}]}
]

您应该能够遍历userEvents,然后在其中浏览每个元素的events数组并遍历该数组:

let userEvents = [
  {events: [{start: 1},{start: 2}]},
  {events: [{start: 3},{start: 4}]}
]

userEvents.forEach(e => {
  e.events.forEach(event =>{
    console.log(event.start)
  })
})

这将使您可以访问所需的元素。如果您尝试提取这些数据或将它们转换为其他数据格式,那么map()filter()reduces()之类的工具当然会有所帮助。

例如,将所有开始都作为一个数组:

let userEvents = [
  {events: [{start: 1},{start: 2}]},
  {events: [{start: 3},{start: 4}]}
]

let starts = userEvents.reduce((a, e) => {
  return [...a, ...e.events.map(event => event.start)]
}, [])
console.log(starts)