@echo off
set "path_bin_1=d:\TEMP\test.exe"
call :testname
echo "%path_bin_1%"
echo "%filename%"
pause
exit
REM тело функции располагаем в конце после оператора exit чтобы предотвратить выполнение в потоке.
:testname
echo "%path_bin_1%"
for /F "delims=" %%a in ("%path_bin_1%") do (
set file=%%~fa
set filepath=%%~dpa
set filename=%%~nxa
)
exit /B
const deleteButton = document.querySelectorAll('.column__card-button');
const addButton = document.querySelector('.add_card')
const cardContent = document.querySelector('.column__card-content_add')
const columns = document.querySelectorAll('.column')
const columnTitle = document.querySelector('.column_title')
const mainContainer = document.querySelector('.main_container')
const toDoContainer = document.querySelector('.todo_container')
let actualCard = null;
const tasks = document.querySelectorAll('.column__card')
const areatxt = document.getElementById('textareaid')
addButton.addEventListener('click', function() {
let columnCardText = areatxt.value;
areatxt.value = ''
const newColumnCard = `<div class="column__card" draggable="true"><div
class="column__card-content">${columnCardText}</div><button class="column__card-button"></button></div>`
columnTitle.insertAdjacentHTML("afterEnd", newColumnCard);
//updateLocalStorage()
});
mainContainer.addEventListener('click', function(event) {
if (event.target.classList.contains('column__card-button')) {
const card = event.target.closest('.column__card');
if (card) {
card.remove();
}
}
//updateLocalStorage()
});
function dragStart(e) {
actualCard = e.target
e.target.classList.add("is-dragging");
};
function dragEnd(e) {
this.classList.remove('hovered');
};
function dragEnter(e) {
e.preventDefault();
this.classList.add('hovered');
};
function dragLeave() {
this.classList.remove('hovered');
};
function dragOver(e) {
e.preventDefault();
const activeElement = mainContainer.querySelector(`.is-dragging`);
const currentElement = e.target;
const isMoveable = activeElement !== currentElement && currentElement.classList.contains(`column__card`);
if (!isMoveable) {
if (e.target.classList.contains("column") && !this.contains(actualCard)) {
this.appendChild(actualCard);
}
return;
}
// e.clientY — вертикальная координата курсора в момент,
// когда сработало событие
const nextElement = getNextElement(e.clientY, currentElement);
// Проверяем, нужно ли менять элементы местами
if (
nextElement &&
activeElement === nextElement.previousElementSibling ||
activeElement === nextElement
) {
return;
}
this.insertBefore(activeElement, nextElement);
};
const getNextElement = (cursorPosition, currentElement) => {
// Получаем объект с размерами и координатами
const currentElementCoord = currentElement.getBoundingClientRect();
// Находим вертикальную координату центра текущего элемента
const currentElementCenter = currentElementCoord.y + currentElementCoord.height / 2;
// Если курсор выше центра элемента, возвращаем текущий элемент
// В ином случае — следующий DOM-элемент
const nextElement = (cursorPosition < currentElementCenter) ?
currentElement :
currentElement.nextElementSibling;
return nextElement;
};
for (const column of columns) {
column.addEventListener('dragenter', dragEnter);
column.addEventListener('dragleave', dragLeave);
column.addEventListener('dragover', dragOver);
column.addEventListener('drop', drop);
column.addEventListener('dragstart', dragStart);
column.addEventListener('dragend', dragEnd);
}
function drop(e) {
e.preventDefault();
actualCard.classList.remove("is-dragging");
actualCard = null;
this.classList.remove('hovered');
//updateLocalStorage();
};
volumes:
- ./initDatabase1:/docker-entrypoint-initdb.d
volumes:
- ./initDatabase2:/docker-entrypoint-initdb.d
return new Array(ingredient.count).fill(null).map((_, index) => <Meat key={index} />);
const nodes = [ ...document.querySelector('td').childNodes ];
const index = nodes.findIndex(({ nodeName }) => nodeName === 'BR');
if (index > -1) nodes[index + 1].remove();
Находим все узлы DOM внутри td
. Их будет 3:const mostFrequentNum = Array
.from(arr.reduce((acc, n) => acc.set(n, -~acc.get(n)), new Map))
.reduce((max, n) => max[1] > n[1] ? max : n, [ , 0 ])
.at(0);
const mostFrequentNum = Object
.entries(arr.reduce((acc, n) => (acc[n] = (acc[n] ?? 0) + 1, acc), {}))
.reduce((acc, n) => (acc[n[1]] = +n[0], acc), [])
.pop();
Во-первых, это неудобно, зачем 2 раза устанавливать один и тот же пакет.
если зависимость #2 внутри #1 обновится, мне также придется ее обновлять во избежание конфликтов версий
Вопрос: зачем?
function camelize(str) {
return str
.split('-')
.map(function(word, index) {
if (index == 0) {
return word;
} else {
return word[0].toUpperCase() + word.slice(1);
}
})
.join('')
}
let str = prompt('Введите текст через дефис');
alert(camelize(str));
function camelize(str) {
return str
.split('-')
.map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1))
.join('')
}
let str = prompt('Введите текст через дефис');
alert(camelize(str));
const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
function camelize(str) {
return str
.split('-')
.map(upper)
.join('')
}
let str = prompt('Введите текст через дефис');
alert(camelize(str));
const upper = (word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1);
const camelize = str => str.split('-').map(upper).join('');
let str = prompt('Введите текст через дефис');
alert(camelize(str));
var c = [
'Афганистан',
'Албания',
'Антарктика',
'Алжир',
'Американское Самоа',
'Андора',
'Ангола',
'Антигуа и Барбуда',
'Азербайджан',
'Аргентина',
'Австралия',
'Австрия',
'Багамские Острова',
'Бахрейн',
'Бангладеш',
'Армения',
'Барбадос',
'Бельгия',
'Бермудские Острова',
'Бутан',
'Боливия',
'Босния и Герцеговина',
'Ботсвана',
'Остров Буве',
'Бразилия',
'Белиз',
'Британская территория в Индийском океане',
'Соломоновы Острова',
'Британские Виргинские острова',
'Бруней',
'Болгария',
'Мьянма',
'Бурунди',
'Белоруссия',
'Камбоджа',
'Камерун',
'Канада',
'Кабо-Верде',
'Каймановы острова',
'Центральноафриканская Республика',
'Шри-Ланка',
'Чад',
'Чили',
'Китайская Народная Республика',
'Остров Рождества',
'Кокосовые острова',
'Колумбия',
'Коморы',
'Майотта',
'Республика Конго',
'Демократическая Республика Конго',
'Острова Кука',
'Коста-Рика',
'Хорватия',
'Куба',
'Кипр',
'Чехия',
'Бенин',
'Дания',
'Доминика',
'Доминиканская Республика',
'Эквадор',
'Сальвадор',
'Экваториальная Гвинея',
'Эфиопия',
'Эритрея',
'Эстония',
'Фарерские острова',
'Фолклендские острова',
'Южная Георгия и Южные Сандвичевы острова',
'Фиджи',
'Финляндия',
'Аландские острова',
'Франция',
'Французская Гвиана',
'Французская Полинезия',
'Французские Южные и Антарктические территории',
'Джибути',
'Габон',
'Грузия',
'Гамбия',
'Палестина',
'Германия',
'Гана',
'Гибралтар',
'Кирибати',
'Греция',
'Гренландия',
'Гренада',
'Гваделупа',
'Гуам',
'Гватемала',
'Гвинея',
'Гайана',
'Республика Гаити',
'Остров Херд и острова Макдональд',
'Ватикан',
'Гондурас',
'Гонконг',
'Венгрия',
'Исландия',
'Индия',
'Индонезия',
'Иран',
'Ирак',
'Ирландия',
'Израиль',
'Италия',
'Кот-д’Ивуар',
'Ямайка',
'Япония',
'Казахстан',
'Иордания',
'Кения',
'КНДР',
'Республика Корея',
'Кувейт',
'Киргизия',
'Лаос',
'Ливан',
'Лесото',
'Латвия',
'Либерия',
'Ливия',
'Лихтенштейн',
'Литва',
'Люксембург',
'Макао',
'Мадагаскар',
'Малави',
'Малайзия',
'Мальдивы',
'Мали',
'Мальта',
'Мартиника',
'Мавритания',
'Маврикий',
'Мексика',
'Монако',
'Монголия',
'Молдавия',
'Черногория',
'Монтсеррат',
'Марокко',
'Мозамбик',
'Оман',
'Намибия',
'Науру',
'Непал',
'Нидерланды',
'Кюрасао',
'Аруба',
'Синт-Мартен',
'Бонэйр, Синт-Эстатиус и Саба',
'Новая Каледония',
'Вануату',
'Новая Зеландия',
'Никарагуа',
'Нигер',
'Нигерия',
'Ниуэ',
'Норфолк',
'Норвегия',
'Северные Марианские острова',
'Внешние малые острова США',
'Микронезия',
'Маршалловы Острова',
'Палау',
'Пакистан',
'Панама',
'Папуа — Новая Гвинея',
'Парагвай',
'Перу',
'Филиппины',
'Острова Питкэрн',
'Польша',
'Португалия',
'Гвинея-Бисау',
'Восточный Тимор',
'Пуэрто-Рико',
'Катар',
'Реюньон',
'Румыния',
'Россия',
'Руанда',
'Сен-Бартелеми',
'Острова Святой Елены, Вознесения и Тристан-да-Кунья',
'Сент-Китс и Невис',
'Ангилья',
'Сент-Люсия',
'Сен-Мартен (Франция)',
'Сен-Пьер и Микелон',
'Сент-Винсент и Гренадины',
'Сан-Марино',
'Сан-Томе и Принсипи',
'Саудовская Аравия',
'Сенегал',
'Сербия',
'Сейшельские Острова',
'Сьерра-Леоне',
'Сингапур',
'Словакия',
'Словения',
'Сомали',
'Южно-Африканская Республика',
'Зимбабве',
'Испания',
'Южный Судан',
'Судан',
'Западная Сахара',
'Суринам',
'Шпицберген и Ян-Майен',
'Свазиленд',
'Швеция',
'Швейцария',
'Сирия',
'Таджикистан',
'Таиланд',
'Того',
'Токелау',
'Тонга',
'Тринидад и Тобаго',
'Объединённые Арабские Эмираты',
'Тунис',
'Турция',
'Туркмения',
'Теркс и Кайкос',
'Тувалу',
'Уганда',
'Украина',
'Республика Македония',
'Египет',
'Великобритания',
'Гернси',
'Джерси',
'Остров Мэн',
'Танзания',
'Соединённые Штаты Америки',
'Виргинские Острова',
'Буркина-Фасо',
'Уругвай',
'Узбекистан',
'Венесуэла',
'Уоллис и Футуна',
'Самоа',
'Йемен',
'Замбия',
];
(?:^"|;")(""|[\w\W]*?)(?=";|"$)|(?:^(?!")|;(?!"))([^;]*?)(?=$|;)|(\r\n|\n)
// создаем стрелочную функцию, принимающую два параметра
const countChars = (str, char) => {
// создаем переменные и присваиваим им значение 0
let i = 0;
let count = 0;
// запускаем цикл с предусловием
while (i < str.length) { // пока i меньше чем длина строки str
// исполняем тело цикла
// берем символ из строки str расположенный по индексу i и переводим в нижний регистр
// берем символ из аргумента функции и переводим в нижний регистр
if (str[i].toLowerCase() === char.toLowerCase()) { // сравниваем оба значения
// если совпало увеличиваем счетчик на 1
count = count + 1;
}
// перед новой итерацией цикла увеличиваем индекс на 1
i = i + 1;
}
// возвращаем из функции накопленный результат подсчета или начальное значение если совпадений не было
return count;
};
let result = countChars('abba#abba#abba#', '#') // пример использования
console.log(result); // 3