var str = "Я очень люблю кушать мельмешки, если тоже - заходи ко мне pornhub.com"
var reg = new RegExp("([a-zA-Z0-9]+://)?([a-zA-Z0-9_]+:[a-zA-Z0-9_]+@)?([a-zA-Z0-9.-]+\\.[A-Za-z]{2,4})(:[0-9]+)?([^ ])+",'g');
var result = str.match(reg)
const getMinimumUniqueSum = arr => [...arr]
.sort((a, b) => a - b)
.reduce((acc, n) => (acc[1] += acc[0] = Math.max(acc[0] + 1, n), acc), [ -Infinity, 0 ])
.pop();
window.functionName = undefined; // где functionName - это имя стираемой функции
у меня есть два больших интерфейсаВаша главная ошибка в этом, интерфейсы должны быть минимальны и описывать тот минимум, который требуется в конкретном месте.
{select: string}
и/или {items: number[]}
Object.values(arr.reduce((acc, [ user, ...data ]) => {
(acc[user] = acc[user] ?? { user, data: [] }).data.push(data);
return acc;
}, {}))
arr.reduce((acc, n) => acc + +(n.startsWith(`${currency} `) && n.match(/\d+$/)), 0)
arr.reduce((acc, n) => {
const [ currency, sum ] = n.split(' ');
acc[currency] = (acc[currency] ?? 0) + +sum;
return acc;
}, {})
arr.sort((a, b) => (a.rooms - b.rooms) || (a.square - b.square));
// или, в более общем виде
const sort = (arr, ...keys) =>
arr.sort((a, b) => {
let diff = 0;
keys.find(k => diff = a[k] - b[k]);
return diff;
});
sort(arr, 'rooms', 'square');
const sorted = (arr, keys) => arr
.map(n => [ n ].concat(keys(n)))
.sort((a, b) => {
let diff = 0;
for (let i = 0; ++i < a.length && !(diff = a[i] - b[i]);) ;
return diff;
})
.map(n => n[0]);
const sortedArr = sorted(arr, n => [ n.rooms, n.square ]);
function listener(event) {
const target = event.target.closest('.app__item');
target.querySelectorAll('.equalizer').forEach(
elem => elem.style.display = 'block'
);
// так как дальнейшие клики будут гонять бесполезный цикл, то лучше отписаться
target.removeEventListener('click', listener);
}
document.querySelectorAll('.app__item').forEach(
item => item.addEventListener('click', listener)
);