class Select {
constructor({
selector,
label,
url,
onOpen,
onClose
}) {
this.container = document.querySelector(selector);
this.label = label;
this.url = url;
this._onOpen = onOpen;
this._onClose = onClose;
...
}
...
open() {
...
if (this._onOpen !== undefined) {
this._onOpen();
}
}
close() {
...
if (this._onClose !== undefined) {
this._onClose();
}
}
}
const svg = document.querySelector('#svg');
const item = svg.querySelector('#rect');
const size = svg.getBoundingClientRect();
const viewBox = svg
.getAttribute('viewBox')
.split(/\s+/g)
.map(entry => Number(entry));
const normalize = (min, max, value) => {
return (value - min) / (max - min);
};
const lerp = (min, max, value) => {
return (1 - value) * min + value * max;
};
const map = (minSource, maxSource, minDestination, maxDestination, value) => {
return lerp(minDestination, maxDestination, normalize(minSource, maxSource, value));
};
svg.addEventListener('mousemove', event => {
item.setAttribute(
'cx',
map(0, size.width, viewBox[0], viewBox[2], event.offsetX)
);
item.setAttribute(
'cy',
map(0, size.height, viewBox[1], viewBox[3], event.offsetY)
);
});
array.filter(entry => (
entry.name !== 'Имя' &&
entry.price !== 'Цена'
));
Дни * Часы * Минуты * Секунды * Миллисекунды
. А количество дней у Вас параметром приходит. const timestamp = (year, month = 1, day = 1) => new Date(year, month - 1, day).getTime();
const entries = [
{
type: 'error',
date: timestamp(2020, 4, 30)
},
{
type: 'log',
date: timestamp(2020, 4, 29)
},
{
type: 'info',
date: timestamp(2020, 4, 25)
}
];
const date = new Date();
const today = timestamp(date.getFullYear(), date.getMonth() + 1, date.getDate());
const interval = 24 * 60 * 60 * 1000;
const entry = entries.find(entry => (entry.date >= today && entry.date <= today + interval));
console.log(entry); // { type: 'error', date: 1588183200000 }
window.addEventListener('scroll', event => {
if (scrollY + innerHeight === document.body.scrollHeight) {
// Code here
}
});
b
). Внутри блока if
область видимости глобальная и var
создает переменную в ней. const $humans = await data.response.items;
if($humans.some(entry => entry.hasOwnProperty('last_seen'))) {
// Всё еще массив, так что надо еще найти тот элемент, в котором есть этот ключ
} else {
// Всё еще массив
}
const $humans = await data.response.items;
const $human = $humans.find(entry => entry.hasOwnProperty('last_seen'));
if($human !== undefined) {
// Первый элемент из массива с ключём last_seen
} else {
// Какой-то код
}