У меня очень длинный текстовый файл с беседой в следующем формате:
[19/12/17 16:30:36] A: Los mensajes en este grupo ahora están protegidos con cifrado de extremo a extremo.
[19/12/17 16:31:23] B: Buenas tardes, bienvenidos
[19/12/17 16:31:36] B: imagen omitida
[19/12/17 16:31:36] C: Hola!! ☺
[19/12/17 16:31:51] D: Hola!!!!
[19/12/17 16:32:10] B: Estamos aquí reunidos... bueno, todos sabéis ya para qué
[19/12/17 16:32:49] B: Formamos parte de un estudio de x relacionadas con la Lógica Convergente ?
[19/12/17 16:34:32] E. Carvajal: Hola...!
[19/12/17 16:34:37] B: Antes de nada,(...) “lista de espera”
[19/12/17 16:37:23] C: Hola❗❗❗
[19/12/17 16:38:17] F: Por cierto como no os conozco a todos yo soy e ?♀
[19/12/17 16:39:19] G: Soy soy x?♂
[19/12/17 16:39:51] B: Yo x
Я уже разбил текстовый файл на массив, используя split("[")
.
Я использую [
, поскольку сообщения длинные и содержат разрывы строк. Все знаки [
, которые не являются частью метки времени, экранируются.
На данный момент это дает мне массив сообщений примерно так:
1: "[timestamp] b: blabla"
2: "[timestamp] c: blabla"
3: "[timestamp] a: blabla"
(...)
3000: "[timestamp] b: blabla"
Теперь мне нужно было бы сохранить элементы в массиве в разные массивы в зависимости от автора, возможно, просматривая его и идентифицируя уникальных авторов, являясь уникальным автором текста между] и: в каждом элементе.
Конечным результатом должна быть коллекция массивов, в каждом из которых содержится коллекция сообщений автора:
[timestamp] c: blabla
[timestamp] c: blabla
[timestamp] c: blabla
Тогда:
[timestamp] b: blabla
[timestamp] b: blabla
и т. Д.
Я полагаю, что мог бы выполнить итерацию по массиву и идентифицировать все уникальные "] author:"
, а затем поместить их в их собственный массив, но я немного растерялся, как поступить с этим.
Я помню, что делал что-то похожее с Лодашем, но не помню название функции. Как бы вы поступили примерно так в JS?