@alex_kulkoff

Как объединить 2 массива в один?

Добрый вечер. Помогите, не могу понять как правильно сделать?
Есть 2 массива в одном отчеты за текущий день в виде объекта, в другом все отчеты в виде массива:
arrA = [
  {
    client: 1,
    reports: {
      date: '2019-09-05',
      id: 1
    }
  },
  {
    client: 2,
    reports: {
      date: '2019-09-05',
      id: 2
    }
  }
]

arrB = [
  {
    client: 1,
    reports: [{
      date: '2019-09-05',
      id: 1
    }, {
      date: '2019-09-04',
      id: 5
    }]
  },
  {
    client: 2,
    reports: [{
      date: '2019-09-05',
      id: 1
    }, {
      date: '2019-09-04',
      id: 5
    }]
  },
  {
    client: 3,
    reports: [{
      date: '2019-09-02',
      id: 1
    }, {
      date: '2019-09-01',
      id: 5
    }]
  },
  {
    client: 4,
    reports: [{
      date: '2019-09-03',
      id: 1
    }, {
      date: '2019-09-01',
      id: 5
    }]
  }
]


Как правильно объединить(или отфильтровать arrB), чтобы получился такой массив, где остаются только отчеты за текущую дату, а если их нет, то null:
total = [
  {
    client: 1,
    reports: {
      date: '2019-09-05',
      id: 1
    }
  },
  {
    client: 2,
    reports: {
      date: '2019-09-05',
      id: 2
    }
  },
  {
    client: 3,
    reports: null
  },
  {
    client: 4,
    reports: null
  }
]
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
arrB.map(cl => {
	const reports = cl.reports.filter(r => r.date === '2019-09-05')
	return reports.length 
		? {client: cl.client, reports: { date: reports[0].date, id: reports[0].id } }
		: {client: cl.client, reports: null}
})
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Triborg-333
@Triborg-333
arrA = arrB.concat([]) ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы