const isSameDay = (d1, d2) => d1.getFullYear() === d2.getFullYear()
&& d1.getMonth() === d2.getMonth()
&& d1.getDate() === d2.getDate();
const compareDates = (ms1, ms2) => {
const d1 = new Date(ms1);
const d2 = new Date(ms2);
if (isSameDay(d1, d2)) return "SAME_DAY";
d1.setDate(d1.getDate() + 1); // тут и месяц и год добавятся, если надо
if (isSameDay(d1, d2)) return "NEXT_DAY";
return "OTHER";
}
compareDates(1635688540289, 1635688540289) // "SAME_DAY"
compareDates(1635688540289, 1635768540289) // "NEXT_DAY"
compareDates(1635688540289, 0) // "OTHER"
<h4><input type="radio" id="small" value="10" zamena="20">Маленька</h4>
Для такого элемента заменить значение value
значением из атрибута zamena
можно так:const replaceValue = (el) => {
el.value = el.getAttribute("zamena");
}
replaceValue(document.getElementById("small"));
zamena
лучше пользоваться data-атрибутами.data-*
атрибутах. Например:<p data-price="100" data-size="Small" data-color="Red"></p>
Получать их значение через свойство dataset
: const element = document.querySelector("p");
element.dataset.color // "Red"
<div class="timer" data-till="1635800892"></div>
const D = new Date( 1000 * document.querySelector(".timer").dataset.till );
В JavaScript время считают не в целых секундах, а точнее, в миллисекундах, поэтому секундное время из разметки надо домножить на 1000. возвращать нулевую строку массива
const str = "abcdef";
// индексы: 012345
str.slice(2, 4)
// от индекса 2, т.е. "c"
// до индекса 4 (но не включая его)
// т.е. до "e", но без самой "e"
// итого вернёт "cd"
Что значит в коде + "..."
"Hello" + " world!"
// получится "Hello world!"
"Понимаете?" + "..."
Что значит : str
if () then {} else {}
, но это выражение - туда нельзя засовывать дополнительные действя, как в if. Удобен для короткой записи, когда нужно вернуть то или иное значение, в зависимости от условия: let a = 5 > 2 ? "5 больше 2" : "5 не больше 2";
условие если верно если ложно
href
.Infinity
списал у 0xD34F само создающихся циклов
'a'
и остался массив на 1 короче: ['b', 'c', 'd']
\b
в регулярках означает границу слова – здесь подойдёт:const arr = ["catboy", "cat", "cat-man", "man, ?cat! doo"];
const filtStr = (str) => {
return arr.filter((item) => item.match(new RegExp(`\\b${str}\\b`, "i")));
};
console.log(filtStr("cat")); // [ "cat", "cat-man", "man, ?cat! doo" ]
const arr = prompt("Введите числа через пробел") // строка
.trim() // отрезать начальные-конечные пробелы
.split(/\s+/) // разбить по пробелам, одному или неск. подряд
.map((s) => Number(s)); // перевести каждый элемент в число
alert("Вы ввели массив: " + arr.join(", ")); // склеить через запятую-с-пробелом
<video>
с нужным тестовым MP4, и стримить const stream = document.querySelector("video").captureStream();