Задать вопрос
@SerjSkachkov

Как из строки сделать объект?

Как из строки сделать объект? Ключ до первого :, остальное значение.
Свойства "актер" и "формат" должны быть массивами.

Title: 2001: A Space Odyssey
Release Year: 1968
Format: DVD
Stars: Keir Dullea, Gary Lockwood, William Sylvester, Douglas Rain

Title: Harvey
Release Year: 1950 
Format: DVD
Stars: James Stewart, Josephine Hull, Peggy Dow, Charles Drake

Title: Knocked Up
Release Year: 2007
Format: Blu-Ray
Stars: Seth Rogen, Katherine Heigl, Paul Rudd, Leslie Mann
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Регулярные выражения
const arr = useMemo(() => {
  const multiple = [ 'Format', 'Stars' ];
  return str
    .split('\n\n')
    .map(n => n
      .split('\n')
      .reduce((acc, m) => (
        m = m.split(/(?<=^[^:]+): /),
        acc[m[0]] = multiple.includes(m[0]) ? m[1].split(', ') : m[1],
        acc
      ), {}));
}, [ str ]);

<ul>
  {arr.map(n => (
    <li>
      <h3>{n.Title}</h3>
      <div>Year: {n['Release Year']}</div>
      <div>Format: <ul>{n.Format.map(m => <li>{m}</li>)}</ul></div>
      <div>Stars: <ul>{n.Stars.map(m => <li>{m}</li>)}</ul></div>
    </li>
  ))}
</ul>

https://jsfiddle.net/s7thmcn8/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽