useEffect(() => {
const intervalId = setInterval(() => {}, 1000)
return () => clearInterval(intervalId)
}, [])
const getName = n => n.name.split(' ').pop();
// или
const getName = n => n.name.replace(/.+ /, '');
// или
const getName = n => n.name.match(/\S*$/)[0];
// или
const getName = n => n.name.slice(-~n.name.lastIndexOf(' '));
const result = Object.values(arr.reduce((min, n) => {
const name = getName(n);
min[name] = +min[name]?.price < +n.price ? min[name] : n;
return min;
}, {}));
function group(data, key, val = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const getVal = val instanceof Function ? val : n => n[val];
const result = new Map;
for (const n of data) {
const k = getKey(n);
result.set(k, result.get(k) ?? []).get(k).push(getVal(n));
}
return result;
}
function max(data, key = n => n) {
const getVal = key instanceof Function ? key : n => n[key];
let result = null;
for (const n of data) {
const val = getVal(n);
result = result?.[1] >= val ? result : [ n, val ];
}
return result?.[0];
}
const result = Array.from(
group(arr, getName).values(),
n => max(n, m => -m.price)
);
TypeError: Cannot read property '0' of null
StringPrototypeMatch(importStatement, /{.*}/)
вместо массива (или возможно вместо объекта или даже строки) выдает вам nullconst match = StringPrototypeMatch(importStatement, /{.*}/);
if( !match ) {
return; // сопоставлений не найдено, дальшейшие действия не имеют смысла
}
const namedImports = match[0];
req.session.isAuth = true // не понимаю, что это за строчка и для чего она нужна
Cannot POST /routes/register.js
или прописать action="/register"
//функция
handleEvent= (arg1, arg2, arg3) => (e) => {
console.log(e.target.value); //значение инпута, если надо
console.log(arg1); //аргумент 1
console.log(arg2); //аргумент 2
console.log(arg3); //аргумент 3
}
//вызов
<input onInput={this.handleEvent(arg1, arg2, arg3)}/>
создаёт новый массив со всеми значениями, для которых функцияcallback
вернула значение, которое может быть приведено кtrue
true
, если элемент массива является числом, то есть, в результирующий массив попадают только числа, и неважно, каковы их значения. Во втором случае вы возвращаете сам элемент, если он является числом, а нули, они да - имеют своим булевым эквивалентом false
, поэтому и отбрасываются. <a href="http://example.com" class="parent-window-link">example</a>
<a href="http://google.com" class="parent-window-link">google</a>
document.addEventListener('click', function(evt) {
if (evt.target.matches('a.parent-window-link')) {
window.top.location = evt.target.href // <-- all magic here
return false
}
})
['first', 'last'].forEach(term => {
jQuery(val).each((index, value) => {
const elem = jQuery(value).find(`.woocommerce-Price-amount.amount:${term}`);
let price = elem.attr('data-orig-price') / data;
price = ((valute_text === '₽')
? price.toFixed(0).toString().replace(/(\d)(?=(\d{3})+([^\d]|$))/g, '$1 ')
: price.toFixed(2));
elem.text(price + valute_text);
});
});
try {
let result = await request()
// ок что дальше?
} catch (oopsError) {
// снова делаю запрос с другими параметрами или обрабатываю капчу
} finally {
// дополнительно этот блок, если что-то должно выполниться в любом случае
}