@s24344

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

Подскажите, пожалуйста, как объединить массивы по следующей логике:
У меня есть массив данных:
const graphData = [{
  'value': 2.1,
  'title': 'Один'
}, {
  'value': 1.1,
  'title': 'Два два два два'
}, {
  'value': 0.7,
  'title': 'Три'
}, {
  'value': 5.1,
  'title': 'Четыре четыре'
}, {
  'value': 6.5,
  'title': 'Пять пять пять'
}]

И есть массив цветов:
const colorsList = [
  { id: 'Один', color: '#f9cd5b' },
  { id: 'Два два два два', color: '#60c78d' },
  { id: 'Три', color: '#bb61c7' },
  { id: 'Четыре четыре', color: '#5ed0fa' },
  { id: 'Пять пять пять', color: 'orange' },
]

Мне необходимо получить следующую структуру:
const tGraphData = [{
  value: 2.1,
  title: 'Один',
  color: '#f9cd5b'
}, {
  value: 1.1,
  title: 'Два два два два',
  color: '#60c78d'
}, {
  value: 0.7,
  title: 'Три',
  color: '#bb61c7'
}, {
  value: 5.1,
  title: 'Четыре четыре',
  color: '#5ed0fa'
}, {
  value: 6.5,
  title: 'Пять пять пять',
  color: 'orange'
}, {
  value: 8,
  title: 'шесть шесть',
  color: 'default color'
}]

Мое решение:
const tData = graphData.map((v) => {
  const i = colorsList.filter((color) => {
    return color.id.toLowerCase() === v.title.toLowerCase()
  })[0]

  return {
    value: v.value,
    title: v.title,
    color: _.get(i, 'color', '')
  }
})
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
const tGraphData = graphData.map( item => {
	item.color = (c = colorsList.find(color => color.id === item.title)) ? c.value : null
	return item
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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