const pr = new Intl.PluralRules('ru');
const rules = [
{ one: 'минута', few: 'минуты', many: 'минут' },
{ one: 'секунда', few: 'секунды', many: 'секунд' },
];
function getTimeStr(minutes, seconds) {
const t = minutes || seconds;
return `Осталось ${t} ${rules[+!minutes][pr.select(t)]}`;
}<div className={s.container}>{getTimeStr(+minutes, +seconds)}</div>
$(window).scroll(function() {
const $banner = $('.banner');
const bannerHeight = $banner.outerHeight(true);
const bannerTop = parseInt($banner.css('top'), 10);
const windowTop = $(this).scrollTop();
$banner.toggleClass('hide', $('.fullwidth').get().some(n => {
const $n = $(n);
const nTop = $n.offset().top - bannerTop;
const minTop = nTop - bannerHeight;
const maxTop = nTop + $n.outerHeight(true);
return windowTop > minTop && windowTop < maxTop;
}));
});
const join = val =>
Array.isArray(val)
? val.flat(Infinity).join('')
: `${val}`;const join = val =>
val instanceof Array
? val.reduce((acc, n) => acc + join(n), '')
: val + '';function join(val) {
const result = [];
const stack = [];
for (let i = -1, arr = [ val ]; ++i < arr.length || stack.length;) {
if (i === arr.length) {
[ i, arr ] = stack.pop();
} else if (arr[i]?.constructor === Array) {
stack.push([ i, arr ]);
[ i, arr ] = [ -1, arr[i] ];
} else {
result.push(arr[i]);
}
}
return ''.concat(...result);
}
<button @click="showFiltered = !showFiltered">
Показать {{ showFiltered ? 'все' : 'отфильтрованные' }} элементы
</button>
<ul>
<li v-for="n in (showFiltered ? filteredItems : items)">{{ n }}</li>
</ul>data: () => ({
items: [ ... ],
showFiltered: false,
}),
computed: {
filteredItems() {
return this.items.filter(n => 0 < n && n < 10);
},
},
Загорелся желанием попробовать реализовать такую игру на vue.js https://youtu.be/WtUKSGJ_9No
Хотелось бы узнать ваше мнение, насколько это будет возможно?
sortByPrices и sortByDuration? Дайте-ка попробую угадать - принимают в качестве параметра массив, и его же сортируют. Если так, то ответ на вопрос "куда копать" очевиден - копайте основы js, какие бывают типы данных, в чём их особенности. Массивы являются объектами, а объекты при присваивании / передаче в функцию / возврате из функции не копируются, копируются ссылки на них. То есть, несколько раз сортируется один и тот же массив - естественно, что при выводе всегда будет отображаться результат последней сортировки. Делайте копии массива, сортируйте копии, передавайте эти копии в экземпляры TicketsList, типа tickets={sortByPrices([...visibleData])}.
sum(int(n[2:]) for n in arr).sum(int(re.sub(r'\D', '', n)) for n in arr).
$color = preg_match('~^цвет (.+)~ui', $str, $match) ? $match[1] : null;
v-modelигнорирует начальное значение атрибутовvalue,checkedилиselectedна любых элементах форм.
$chunks = array_chunk($arr, 2);
$newArr = array_combine(array_column($chunks, 0), array_column($chunks, 1));for ($i = 0; $i < count($arr); $i += 2) {
$newArr[$arr[$i]] = $arr[$i + 1];
}
$('form').on('input', function() {
$('#submit-about').prop('disabled', ![
$('#name-about').val().length !== 0,
$('#phone-about').val().length === 16,
$('#personaldata-about').prop('checked'),
].every(Boolean));
});