Итерация по массиву объектов массива JS - PullRequest
0 голосов
/ 28 декабря 2018

Как я могу перебрать структуру, подобную этой, в JS, в основном это массив, связывающийся с массивом объектов. Это то, что я получаю, когда я его console.log

[Array(1)]
0: Array(1)
0: {day: "Friday", start: "2:00", end: "7:30"}
length: 1
__proto__: Array(0)
length: 1
__proto__: Array(0)

Я попробовал это

formattedShifts.map(shift => shift.end)

Но это не сработало, formattedShifts - это массив, в который я вставляю, именно здесь я создаю массив

  let formattedShifts = [];
    if(props.formData.isLinkedShifts) {
      //converts shift.startTime and shift.endTime format 
      function toDays(startDateString, endDateString) {
        const formatString = 'ddd MMM DD YYYY HH:mm:ss [GMT]ZZ';
        const startDate = moment(startDateString, formatString);
        const endDate = moment(endDateString, formatString);
        const start = startDate.format('H:mm');
        const end = endDate.format('H:mm');

        const dates = [];

        while(startDate.isSameOrBefore(endDate, 'day')) {
          let currentDay = startDate.format('dddd');
          dates.push({day: currentDay, start: start, end: end});
          startDate.add(1, 'days');
        }
        return dates;
      }
      formattedShifts.push( toDays( props.formData.shifts.map( shift => shift.startTime), 
        props.formData.shifts.map( shift => shift.endTime)) );

    }

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

enter image description here

Поскольку вы добавили массив в вопросе следующим образом:

Вам необходимо повторить его:

var a = [[{day: "Friday", start: "2:00", end: "7:30"}, {day: "Friday", start: "2:00", end: "12:30"},{day: "Friday", start: "2:00", end: "8:30"} ,{day: "Friday", start: "2:00", end: "09:30"}]]

const ends = a[0].map(value => value.end);

console.log(ends)

Вам нужно перебрать первый элемент вашего array of array of object

0 голосов
/ 28 декабря 2018

Согласно вашему консольному результату, я предполагаю, что ваш массив - что-то вроде

Var a = [
  {
    day: "Friday", 
    start: "2:00", 
    end: "7:30"
  }
]

Так что вы можете пройти через это как

a.forEach(function(item) {console.log(item)})   //{day: "Friday", start: "2:00", end: "7:30"}

a.forEach(function(item) {
  for (i in item) { 
     console.log(i, item[i])
  }
})

Результат консоли будет как

day Friday // i will give the key (day), item[i] will give the value of key (Friday)
start 2:00
end 7:30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...