var globalVar = "Hello!";
Object.defineProperty(window, 'test', {
get() { return globalVar } // ну и другие необходимые дескрипторы, опущены для примера.
});
console.log(test); // "Hello!"
globalVar = "world!";
console.log(test); // "world!"
// имена свойств можно передавать в виде массива
const pick = (obj, keys) => Object.fromEntries(keys.map(n => [ n, obj[n] ]));
const newObj = pick(obj, [ 'b', 'c' ]);
// или как отдельные значения
const pick = (obj, ...keys) => keys.reduce((acc, n) => (acc[n] = obj[n], acc), {});
const newObj = pick(obj, 'b', 'c');
const pickExisting = (obj, keys) =>
Object.fromEntries(keys.filter(n => n in obj).map(n => [ n, obj[n] ]));
const pickOwn = (obj, keys) =>
keys.reduce((acc, n) => (Object.hasOwn(obj, n) && (acc[n] = obj[n]), acc), {});
const pick = (obj, filterFn) => Object.fromEntries(Object.entries(obj).filter(filterFn));
const obj1 = pick(obj, ([ k, v ]) => 'abc'.includes(k) && v % 2); // {a: 1, c: 3}
const obj2 = pick(obj, n => n[1] > 2); // {c: 3, d: 5}
let statuses = document.querySelectorAll('.M')
statuses.forEach((item) => {
if (item.innerText === 'Активен') {
item.classList.add('Free')
}
if (item.innerText === 'Заблокирован') {
item.classList.add('Blocked')
}
}
)
<MyStatus
class="M"
:class="{'Free': item.Status==='Активен', 'Blocked': item.Status==='Заблокирован'}"
style="width: 75%; padding: 0.25em 0.75em"
>
{{ player.Status }}
</MyStatus>
const slider = $(".slider").slick({
centerMode: true,
slidesToShow: 4
});
const breakpoint = window.matchMedia("(max-width: 992px)");
const breakpointChecker = () => {
if (breakpoint.matches) {
slider.slick('init');
} else {
slider.slick('destroy');
}
};
breakpoint.addEventListener("change", breakpointChecker);
breakpointChecker();
computed: {
deadlineText() {
const today = new Date().setHours(0, 0, 0, 0);
const deadline = new Date(this.task.deadline).setHours(0, 0, 0, 0);
return [ 'Уже было', 'Сегодня', 'Жди' ][1 + Math.sign(deadline - today)];
},
},
document.querySelector('input').addEventListener('input', e => {
const { value } = e.target;
const num = Number(value);
const isValid = !isNaN(num) &&
num <= 60 &&
num >= -60;
// что-то делаем с валидным / невалидным
if (isValid) {
// мы молодцы, сирену можно выключить
} else {
// включаем мигалку и сирены, подсвечиваем красным
}
});
Есть ли возможность понять, какой конечный вариант в модели должен быть и какая таблица получится с нуля, после применения всех миграций?Ну, собственно, применить все миграции и посмотреть в таблицу, в чём тут сложность-то?