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

    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/
    Ответ написан
    Комментировать