useEffect(() => {
const intervalId = setInterval(() => {}, 1000)
return () => clearInterval(intervalId)
}, [])
Object.values(arr.reduce((acc, n) => {
const name = n.name.split(' ').pop();
acc[name] = +acc[name]?.price < +n.price ? acc[name] : n;
return acc;
}, {}))
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 {
// дополнительно этот блок, если что-то должно выполниться в любом случае
}
Object.values(arr1.reduce((acc, { user_id: id, ...n }) => {
Object.entries(n).forEach(([ k, v ]) => acc[id][k] = (acc[id][k] || 0) + v);
return acc;
}, Object.fromEntries(arr2.map(n => [ n.id, {...n} ]))))
Map
:[...arr1.reduce((acc, { user_id: id, ...n }) => {
const obj = acc.get(id);
Object.entries(n).forEach(([ k, v ]) => obj[k] = (obj[k] || 0) + v);
return acc;
}, new Map(arr2.map(n => [ n.id, {...n} ]))).values()]
Object.values
извлекаем данные из объекта через map
по исходному массиву:arr2.map(function(n) {
return this[n.id];
}, arr1.reduce((acc, { user_id: id, ...n }) => (
Object.keys(n).forEach(k => acc[id][k] = (acc[id][k] || 0) + n[k]),
acc
), Object.fromEntries(arr2.map(n => [ n.id, {...n} ]))))