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),
}));
arr.forEach(n => n.array2.reduceRight((_, n, i, a) => mustStay(n) || a.splice(i, 1), 0));
// или
for (let i = 0; i < arr.length; i++) {
const a = arr[i].array2;
a.splice(0, a.length, ...a.filter(mustStay));
}
// или
for (const { array2: a } of arr) {
let numDeleted = 0;
for (const [ i, n ] of a.entries()) {
a[i - numDeleted] = n;
numDeleted += !mustStay(n);
}
a.length -= numDeleted;
}
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
), {});
methods: {
createAlphaIndex(num) {
const base = 26;
let str = '';
do {
const mod = num % base;
num = num / base | 0;
str = (mod ? String.fromCharCode('A'.charCodeAt(0) + mod - 1) : (--num, 'Z')) + str;
} while(num);
return str;
},
},
<div v-for="i in 1000">{{ createAlphaIndex(i) }}</div>