const sum = ({data}) => data.reduce((a, b) => a + b, 0);
const colors = [
{ primary: '#AAAAAA', secondary: '#AAABBB' },
{ primary: '#BBBBBB', secondary: '#BBBCCC' },
{ primary: '#CCCCCC', secondary: '#CCCDDD' },
{ primary: '#DDDDDD', secondary: '#DDDEEE' },
]; // ЦВЕТА ВСЕГДА В НУЖНОМ ПОРЯДКЕ
const DATASETS = [
{
data: [1, 2, 3, 4, 5],
},
{
data: [2, 3, 4, 5, 6],
},
{
data: [3, 4, 5, 6, 7],
},
]; // МАССИВ МОЖЕТ БЫТЬ ОГРОМНЫМ, ДАННЫЕ ТОЖЕ
const NEW_DATASETS = DATASETS
.map((dataset, index) => [sum(dataset), index]) // получаем соответствие суммы индексу
.sort(([a],[b]) => b - a) // сортируем по сумме в обратном порядке
.map(([,sortedIndex], index) => ({
...DATASETS[index],
...colors[sortedIndex]
}));var { name, surname, age } = myUser, то это было бы реальной ошибкой: ты неявно бы менял name окна, но для const это не актуально.:root
$basewidth: 960px а, очевидно,:root
$basewidth: 960px:root
$basewidth: 960px
div
width: $basewidth:root
$basewidth: 960px
div
width: $basewidthimport getPRoducts напиши const getPRoducts = async () => {
return [1, 2, 3]
} и сможешь в этом убедиться.function setValue(element, value, options) {
if(typeof element === 'string')
element = document.querySelector(element);
options = Object.assign({
bubbles: true
}, options);
element.dispatchEvent(new MouseEvent('mousedown', options));
element.dispatchEvent(new MouseEvent('mouseup', options));
element.dispatchEvent(new MouseEvent('click', options));
element.dispatchEvent(new Event('focus', options));
element.dispatchEvent(new Event('keydown', options));
element.dispatchEvent(new Event('keypress', options));
element.value = value;
element.dispatchEvent(new Event('input', options));
element.dispatchEvent(new Event('keyup', options));
element.dispatchEvent(new Event('change', options));
setTimeout(() => element.dispatchEvent(new Event('blur', options)));
return element;
}
setValue('input[name="email"]', 'новое_значение@example.com')v-for="(item, index) in currentPageSortedList"data: {
list: [...bread[0]], // или просто bread? х.з. не ясно, что там
// ...
},
computed: {
sortedList() {
const sort = {
"По популярности": "changePopular",
"По возрастанию цены": "changePlus",
"По уменьшению цены": "changeMinus",
"Сначала обсуждаемые": "changeDiscussed",
"Сначала с лучшей оценкой": "changeBest"
}[this.selected];
// лишний slice здесь для того чтобы клонировать массив
// т.к. sort мутирует исходный
return sort ? this.list.slice().sort(this[sort]) : this.list;
},
currentPageSortedList() {
const perPage = 6;
const position = this.currentPage * perPage;
return this.sortedList.slice(position, position + perPage);;
},
// ...
},
watch: {
// при смене выбора скидываем на первую страницу
selected() {
this.currentPage = 0;
}
} const uniq = (value, index, array) => !array.includes(value, index + 1);
[1, 2, 2, 3, 3, 3].filter(uniq) // [1, 2, 3] /** @type {Array<ReturnType<typeof createElement>>} */ и оно заработает. Но никаких долговременных гарантий. @mouseout или @mouseleave должны сопровождаться @focusout или @blur для доступности. @mouseover, @mouseenter или @hover должны сопровождаться @focusin или @focus для доступности. @mouseenter нам может понадобится @focusin, если нам это советует правило по доступности? Думай, думай...@focus и @focusin? {{Route('ChangeLanguage', N)}}? /en и /tr то у тебя будет открываться собственно та версия, которая сохранена в закладках\истории, а не так которая была выбрана.selectLang.selectedIndex = localStorage.getItem(storageKey); вызовет change автоматически - это не так, программная смена не вызывает событий.</div> в <template>.v-on: mouseover="out" должно быть слитно v-on:mouseover="out".data, methоds висят в воздухе.<styles>, а <style> причём судя по вложенности не просто <style>, который ожидает обычный css, а <style lang="scss">.out и select.<a> href="#" или, лучше, v-on:click.prevent из-за чего клик по ссылке открывает новую вкладку. А ещё лучше - не использовать <a> не для сссылок.one - стока, то назначался класс из этой строки, а не класс .one, в таком случае выглядеть это должно так: v-bind:class="[one, { stels: stels }]" или, хуже, v-bind:class="{ [one]: one, stels: stels }".