Чтобы убрать этот долбозапрос
«Преждевременная оптимизация — корень всех зол». Дональд Кнут.
let number = -2e9;
let timer = setInterval(
() => {
console.log(number);
number += 1;
if (number > 2e9) {
clearInterval(timer);
}
},
1
);
set COMPOSER_MEMORY_LIMIT=-1 && php -d memory_limit=-1 composer.phar <...>
export COMPOSER_MEMORY_LIMIT=-1 && php -d memory_limit=-1 composer.phar <...>
className === 'button'
не сработает, потому что там не 'button'
, а 'button num3'
или типа того.event.target.closest('button')
- это сработает даже если внутри кнопки будут иконки, например, и клик попадет в них.const calc = document.querySelector('.calc');
calc.addEventListener('click', calcClickHandler);
function calcClickHandler(event) {
const button = event.target.closest('button');
if (button) {
console.log('Click!', button);
}
}
const mustStay = n => n !== null;
.const newArr = arr.map(n => ({
...n,
array2: n.array2.filter(mustStay),
}));
for (let i = 0; i < arr.length; i++) {
const a = arr[i].array2;
for (let j = 0; j < a.length; j++) {
if (!mustStay(a[j])) {
for (let k = j--; ++k < a.length; a[k - 1] = a[k]) ;
a.pop();
}
}
}
// или
arr.forEach(n => {
n.array2.reduceRight((_, n, i, a) => mustStay(n) || a.splice(i, 1), 0);
});
// или
(function next(i, { array2: a } = arr[i] ?? {}) {
if (a) {
a.splice(0, a.length, ...a.filter(mustStay));
next(-~i);
}
})(0);
// или
for (const { array2: a } of arr) {
a.length -= a.reduce((acc, n, i) => (
a[i - acc] = n,
acc + !mustStay(n)
), 0);
}
const flatObj = obj =>
Object.entries(obj).reduce((acc, [ k, v ]) => (
v instanceof Object && !Array.isArray(v)
? Object.assign(acc, flatObj(v))
: acc[k] = v,
acc
), {});