import pug from 'pug';
//...
template: pug.render(`span {{ tr(lang).title }} `)$APPLICATION->RestartBuffer();die();const everyNth = (arr, n) => arr.filter((e, i) => i % n === 0);
// применение
everyNth([0, 11, 22, 33, 44, 55, 66, 77], 7) // [0, 77]for():function everyNth(arr, n) {
const result = [];
for (let i=0; i<arr.length; i+=n) result.push(arr[n]);
return result;
}for()быстрее в 7 раз!
x - свойство экземпляра, другой - статический геттер:class Base {
constructor() {
this.x = 3;
}
static get x() {
return 1.5;
}
}function Base() {
this.x = 3;
}
Base.x = 1.5;
// или
function Base() {}
Base.prototype.x = 3;
Base.x = 1.5;class Base {
x = 3;
static x = 1.5;
} Для меня по логике перед loohahead должны быть символы
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\d) - обязательно впереди от начала строки должна быть хотябы 1 цифра, не важно в каком именно месте.*, где . - любой символ и и квантор * 0 или "много" раз, а потом цифра \d(?=.*[a-z]) - обязательно 1 маленькая буква латинского алфавита(?=.*[A-Z]) - обязательно 1 большая буква латинского алфавитаИ второй вопрос. Почему этот регэксп работает в случае если меняешь местами такие символы:
abC123, Cab123, 123Cab - то есть порядок прописных строчных и цифр не важен, но ведь группы lookahead идут по порядку
(?=.*\d)(?=.*[a-z])(?=.*[A-Z]) после слова пример-let obj = {
name: "",
value: 0
}
let newArr = new Array(arr.length).fill(obj);let newArr = Array.from({length: 10}, function() { return { name: "", value: 0} }) let result = arr.map( (item, index) => { return item === 1 ? index : 0 }).filter( item => { return item !== 0});
arr.map((n, i) => n ? i : null).filter(n => n !== null)
// или
arr.map((n, i) => n ? i : NaN).filter(n => n === n)
// или
arr.map((n, i) => !!n && i).filter(Number.isInteger)
// или
arr.map((n, i) => !n || i).filter(n => n !== !0)arr.reduce((acc, n, i) => n ? [ ...acc, i ] : acc, [])
// или
arr.reduce((acc, n, i) => (n && acc.push(i), acc), [])for (let i = arr.length; i--;) {
if (arr[i]) {
arr[i] = i;
} else {
for (let j = i; ++j < arr.length; arr[j - 1] = arr[j]) ;
arr.pop();
}
}
// или
arr.reduceRight((_, n, i, a) => n ? a[i] = i : a.splice(i, 1), 0);
// или
arr.splice(0, arr.length, ...любое_выражение_с_map/filter_или_reduce_из_показанных_выше);
// или
arr.length -= arr.reduce((acc, n, i, a) => (
a[i - acc] = i,
acc + !n
), 0);