В данный момент ваша попытка не дает больших результатов для достижения желаемого результата, так как вы разделяете на пробел .split(" ")
, но в вашей строке нет пробелов, и, таким образом, это не дает большого результата.
Вместо этого вы можете использовать регулярное выражение , чтобы разделить текущую строку.Используя регулярное выражение, вы можете более точно контролировать, как разбивается ваша строка.Ниже я использовал:
/(\w+[:;])/
Здесь я делю строку на символы слова (подряд) (\w+
), за которыми следует точка с запятой (;
) или двоеточие (:
)).
Это, однако, вернет одномерный массив с дополнительными ""
(пустыми) строками внутри него.Таким образом, я также использовал .reduce
, чтобы удалить ваши пустые строки и поместить каждое значение разбиения в свой собственный массив, что дает вам ваш результат.
См. Рабочий пример ниже:
const str = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill",
res = str.split(/(\w+[:;])/).reduce((acc, wrd) => wrd ? [...acc, [wrd]] : acc, []);
console.log(res);