• Как перебрать методы объектов в массиве?

    mrswylet
    @mrswylet
    Этот ваш перебор очень странный, вы путаетесь в синтаксисе.
    arrayOfObjects.forEach((element) => element.runLab(), () => {
      if (element.runLab !== 1) {
        console.log(element.runLab());
      }
    })

    Я подозреваю, что вы хотели так сделать
    arrayOfObjects.forEach((element) => {
      const resultLab = element.runLab();
      if (resultLab !== 1) {
        console.log(resultLab);
      }
    });
    Ответ написан
    Комментировать
  • Какие видео можно посмотреть для начального уровня?

    mrswylet
    @mrswylet
    Советую канал на Ютубе canguro english.
    Если он не подойдёт автору, от может хотя бы понравится тем, кто пришил с поиска
    Ответ написан
    Комментировать
  • Проблема с Docker. Не правильная установка на windons+wcl2+debian? От чего не запускается? Как искать проблему?

    mrswylet
    @mrswylet Автор вопроса
    Я так и не смог заставить работать docker под wls2 + debian.
    Но, под wls2+ubuntu+18.04 все работает отлично.
    Ubuntu ставил по этому гайду https://zource.dev/2020/05/setup-wsl2/
    Ответ написан
    Комментировать
  • Как починить VSFTPD?

    mrswylet
    @mrswylet
    Если вдруг кто-то пришел сюда с поиска и ему ему не помогали следующие вещи:
    * восстановление конфигураций из бекапа;
    * удаление и новая установка,

    То попробуйте произвести полное удаление пакету командой sudo apt-get --purge remove vsftpd и заново его поставить. Мне это помогло.
    Ответ написан
    1 комментарий
  • Как решить судоку, если для любой из оставшихся пустых ячеек более одного значения?

    mrswylet
    @mrswylet
    Если попробовать начать с этого. Например ваше поле
    - 1 2 3   4 5 6   7 8 9
    1
    2   ?   
    3         ?
    
    4                   ?
    5
    ...


    В ячейке (2; 2) у вас могут быть цифры 2, 4, 6.
    В ячейке (4; 3) у вас могут быть цифры 2, 3, 8.
    В ячейке (8; 4) у вас могут быть цифры 1, 4, 8.

    Мы получаем, что в первой ячейке не повторяется с остальными ячейками только цифра 6, ее и ставим.
    Во второй ячейке - цифра 3.
    В третьей - 1.

    Или я не правильно понял вашу проблему?
    Ответ написан
  • Почему не работает смещение в TouchSwipe?

    mrswylet
    @mrswylet
    В данном примере у вас блокируется загрузка тех плагинов, которые вы хотите загрузить, и скрипт валится в ошибку.
    Загляните в консоль браузера
    Ответ написан
  • Кто может объяснить, почему при клике на item, цикл уже пройден?

    mrswylet
    @mrswylet
    Эмм.
    Похоже вы неправильно понимаете механизм событий.
    items[i].addEventListener('click', function() {alert(i);});

    Данной строчкой вы подписываетесь на событие клика. Функция не исполняется сразу, а ждет когда произойдет клик.
    Это как если бы вы оформили подписку на какой-нибудь журнал. После подписки вы бы не стали ждать его по стойке смирно что бы прочитать, а жили бы своей жизнью. А когда он бы пришел, получили бы него на почте и прочитали.
    Ответ написан
    Комментировать
  • В чём разница в javascript ++ перед переменной или после?

    mrswylet
    @mrswylet
    Если написать
    var a = 0;
    console.log(a++)

    то в консоль сначала выведется переменная "а", то бишь "0", а потом произойдет операция инкрементирования(++).

    А если написать
    var a = 0;
    console.log(++a)

    сначала произойдет операция инкрементирования, потом в консоль выведется переменная "а", равная "1"
    Ответ написан
    Комментировать
  • Можли ли продолжить всплытие собственных событий в vue.js?

    mrswylet
    @mrswylet Автор вопроса
    Если кто-то пришел сюда со страницы поисковика, то вот готовый ответ. (Текста будет много)
    (Скажу сразу, я нет могу гарантировать, что все написанной мной абсолютная истина, но код рабочий)
    Есть для варианта пробросить шину событий (event bus). У каждого есть плюсы и минусы. Сейчас рассмотрим оба.

    1. Проброс event bus через корневой компонент $root.
    Vue.component('mian-container', {
    	template: `<main-header ></main-header>`,
    	data(){ 
    		return{ 
    			name: 'я <<main-header></<main-header>' 
    		} 
    	},
    	// тут мы при создании компонента подписываем его на прослушку события 'selected-menu'
    	created(){ 
    		this.$root.$on('selected-menu', function (event) { 
    			console.log(event.target + this.name) 
    		}.bind(this)) // не забыть про .bind(this), иначе произойдет потеря контекста
    	} 
    })
    Vue.component('main-header', {
    	template: `<main-menu ></main-menu>`,
    	data(){ 
    		return{ 
    			name: 'я <main-menu></main-menu>' 
    		} 
    	},
    	// тут мы при создании компонента подписываем его на прослушку события 'selected-menu'
    	created(){ 
    		this.$root.$on('selected-menu', function (event) { 
    			console.log(event.target + this.name)  
    		}.bind(this)) // не забыть про .bind(this), иначе произойдет потеря контекста
    	}
    })
    Vue.component('main-menu', {
    	template: `<button @click="selectedMenu">Меню</button>`,
    	methods:{
    		selectedMenu(event){
    			// тут мы создаем событие 
    			this.$root.$emit('selected-menu', event)
    		}
    	}
    })
    new Vue({
    	el: '#main'
    })


    1. Проброс event bus через дополнительный экземпляр Vue, например bus.
    // тут создаем дополнительный экземпляр Vue, 
    // далее по коду используем его вместо 'this.$root'
    let bus = new Vue();
    
    Vue.component('mian-container', {
    	template: `<main-header ></main-header>`,
    	data(){ 
    		return{ 
    			name: 'я <<main-header></<main-header>' 
    		} 
    	},
    	created(){ 
    		bus.$on('selected-menu', function (event) { 
    			console.log(event.target + this.name) 
    		}.bind(this))
    	} 
    })
    Vue.component('main-header', {
    	template: `<main-menu ></main-menu>`,
    	data(){ 
    		return{ 
    			name: 'я <main-menu></main-menu>' 
    		} 
    	},
    	created(){ 
    		bus.$on('selected-menu', function (event) { 
    			console.log(event.target + this.name)  
    		}.bind(this))
    	}
    })
    Vue.component('main-menu', {
    	template: `<button @click="selectedMenu">Меню</button>`,
    	methods:{
    		selectedMenu(event){
    			bus.$emit('selected-menu', event)
    		}
    	}
    })
    new Vue({
    	el: '#main'
    })


    Какой вариант выбрать, решать конечно же вам. От себя могу добить следующее:
    1) способ через корневой компонент $root
    (+) более лаконичный, если вы работаете с системами сборки, например webpack, то вам не придется думать о подключении дополнительного экземпляра Vue в каждый файл
    (-) если у вам очень много "глобальных" событий, то будут проблемы с производительность

    2) способ через дополнительный экземпляр Vue
    (+) этот вариант менее чувствительный к большему количеству событий
    (-) если вы работаете с системами сборки, например webpack, то вам придется помнить о подключении дополнительного экземпляра Vue в каждый файл где вы будете использовать event bus
    Ответ написан