JavaScript

Помогите сделать задание по js

Дан массив строк, который содержит строки вида
(10)aaa
(2)bbbbb
(10)ccccccc
(30001)dddd
(30001)eeeeee
т.е. в начале строки в скобках идет номер, а затем строка (числа и строки мо-гут быть любыми). Исходные данные наберите сами. Создайте на их основе объект в котором, свойствами будут числа (номер в скобках, в начале которого поставить символ ‘p’), а значениями – массив строк (строки с одинаковыми номерами нужно помещать в один массив).
В итоге должно получиться
(10p)aaa
Паша Алиев
Паша Алиев
97
 const strings = ['(10)aaa', '(2)ccc', '(2)bbbbb']; 

// создаем пустой объект, в который будем добавлять свойства
const obj = {};

// проходимся по каждой строке
strings.forEach(str => {
// извлекаем число в скобках и сам текст
const match = str.match(/\((\d+)\)(.+)/);
const num = parseInt(match[1]);
const text = match[2];

// если свойство с таким числом уже существует, добавляем текст к массиву значений
if (obj[`p${num}`]) {
obj[`p${num}`].push(text);
} else { // иначе создаем новое свойство
obj[`p${num}`] = [text];
}
});

console.log(obj); // {p10: ['aaa'], p2: ['ccc', 'bbbbb']}
В этом примере мы сначала создаем пустой объект, в который будем добавлять свойства. Затем мы проходимся по каждой строке и извлекаем число в скобках и сам текст, используя регулярное выражение. Затем мы проверяем, существует ли уже свойство с таким числом в объекте. Если да, то мы добавляем текст к массиву значений этого свойства. Если нет, то мы создаем новое свойство и добавляем его в объект.

Наконец, мы выводим полученный объект в консоль.
ВБ
Вячеслав Бакалкин
79 898
Лучший ответ
Паша Алиев А можно ли вывести результат на html страничке?
Паша Алиев Хороший вопрос) спасибо
 const obj = {}; 
const arr = [
'(10)aaa',
'(2)bbbbb',
'(10)ccccccc',
'(30001)dddd',
'(30001)eeeeee'
];

for (let str of arr) {
const regexp = str.match(/\d+/);
const len = str.length - regexp[0].length - 2;
const key = 'p' + regexp[0];
const value = str.slice(-len);
obj[key] ?
obj[key].push(value) :
obj[key] = [value];
}

Я очень и очень и очень хреново разбираюсь в регулярных выражениях, это можно сказать мое большое слабое место. Поэтому не могу сказать, что это самый эффективный вариант решения, зато работает с любыми скобками.
 const arr = [  
'(10)aaa',
'(2)bbbbb',
'(10)ccccccc',
'(30001)dddd',
'(30001)eeeeee'
];

let obj=arr.reduce((a,e)=>{
let r=e.split(/[\)\(]+/);
r[1]=r[1]+'n';
if(a.hasOwnProperty(r[1])){
a[r[1]].push(r[2])}
else{
a[r[1]]=[r[2]]}
return a},{});

console.log(obj);//{10n: Array(2), 2n: Array(1), 30001n: Array(2)}
_.
__==Dastan4Ik=__ .
20 429