я понимаю, что это делается через регуляркувы должны понимать, что это не делается через регулярки
3 запроса в секунду - 3*12500 = 37500 групп в секунду
const {JSDOM} = require('jsdom');
const group = (str) => {
const {document} = new JSDOM(str.replace(/(\[|\])/g, (_, s) => ({
'[': '<',
']': '>'
})[s])).window;
return [...document.body.querySelectorAll('*')].reduce((acc, elem) => {
acc[elem.tagName] = [...elem.childNodes].reduce((str, elem) => {
return str + (elem.nodeType === document.TEXT_NODE ? elem.textContent : '');
}, '');
return acc;
}, {});
};
console.log(group('[m]Галифакс ([i]город в Канаде[/i])[/m]'));
console.log(group('[m][p]г.[/p] Хадалык ([i]Синьцзян-Уйгурский[c] авт.[/c] р-н, КНР[/i])[/m]'));
function bang() {
try {
({}).a();
} catch(e) {
e.message = "Just thr" + "ow like this!";
(function* () {})()['thr' + 'ow'](e);
}
}
function sum(args, func) {
const result = [];
const length = Math.max(...args.map((item) => item.length));
for (let i = 0; i < length; ++i) {
const arr = args.map((item) => item[i]).filter(Boolean);
const maxLength = Math.max(...arr.map((item) => item.length));
result.push([]);
for (let j = 0; j < maxLength; ++j) {
result[i].push(arr.map((item) => item[j]).filter(Number).reduce(func));
}
}
return result;
}
/* сложить */
sum([arr1, arr2, arr3], (acc, curr) => acc + curr);
/* умножить */
sum([arr1, arr2, arr3], (acc, curr) => acc * curr);