• Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, и как я понимаю теперь ошибок не дает и все работает?
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Отлично, теперь скажите откуда вы взяли эту картинку (ту что в первом вашем комментарии к ответу) ????
    Как только мы это поймем, ответ будет готов)))

    другими словами почему тогда у вас
    console.log("el:", el); выдавал массив а сейчас выдает объект.
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, давайте теперь так сделаем:

    export function queryLog(state = initialState, action): object {
        if (action.type === constants.LOAD_QUERY_LOG_STOP) {
            log = action.queryLog;
        }
        if (action.type === constants.LOAD_COMMENTS_STOP) {
            comments = action.comments;
        }
        const list = log.concat(comments);
        console.log("list:", list); // ----------- 1 ----------------
    
        let summ = list.map(el => {
            console.log("el:", el); // ----------- 2 ----------------
    
            el.date = el.dt_changelog * 1000 || el.datetime * 1000;
            el.type = el.dt_changelog ? 'changelog' : 'comment';
            el.text = el.dt_changelog ? changed : el.text;
            el.author = el.dt_changelog ? el.usr.source : el.author;
            el.status = ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен';
            return el;
        });
    
        console.log('!!!!!!!!!!!!!!!!!!!!!');
        console.log(comments);
        console.log(log);
        console.log(summ);
    
        summ.sort(function(a, b) {
            if (a.date > b.date) {
                return 1;
            }
            if (a.date < b.date) {
                return -1;
            }
            return 0;
        });
        return summ;
    }


    и покажите что дают эти два console.log-а которые я вставил в этот код
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, вообще ничего теперь не понятно))))

    то у вас в el был массив
    5da384f6a2887930745783.png

    то теперь в нем объект
    5da38b4bc0ec9957972550.png
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, а теперь покажите что выведет команда
    console.log(items)

    вставить сразу после
    let summ = log.concat(comments).map(items => {
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, покажите что выведет команда
    console.log(typeof items)

    вставить сразу после
    let summ = log.concat(comments).map(items => {
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, исправил, скопируйте еще раз
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, вернее даже так:
    // ...
        let summ = log.concat(comments).map(items => {
          items.forEach(el=>{
            el.date = el.dt_changelog * 1000 || el.datetime * 1000;
            el.type = el.dt_changelog ? 'changelog' : 'comment';
            el.text = el.dt_changelog ? changed : el.text;
            el.author = el.dt_changelog ? el.usr.source : el.author;
            el.status = ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен';
          });
          return items;
        });
    // ...
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, el у вас массив. Тоесть чтобы обратится к самому первому элементу вам надо везде заменить el.changelog на el[0].changelog, но в этом случае ваш код обработает только первый элемент.
    чтобы обработать все элементы, вам надо сделать примерно так:
    el.forEach(item=>{
       item.status = "Статус" in item.changelog ? item.changelog["Статус"].after : "не назначен";
    });
  • Как исправить данную ошибку?

    lastuniverse
    @lastuniverse
    Влад, el у вас массив. Тоесть чтобы обратится к самому первому элементу вам надо везде заменить el.changelog на el[0].changelog, но в этом случае ваш код обработает только первый элемент.
    чтобы обработать все элементы, вам надо сделать примерно так:

    // ...
        let summ = log.concat(comments).map(items => {
          items.forEach(el=>{
            el.date = el.dt_changelog * 1000 || el.datetime * 1000;
            el.type = el.dt_changelog ? 'changelog' : 'comment';
            el.text = el.dt_changelog ? changed : el.text;
            el.author = el.dt_changelog ? el.usr.source : el.author;
            el.status = ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен';
          });
          return items;
        });
    // ...
  • Модуль для структуризации обработки команд ботами для ТЕЛЕГРАМ, ДИСКОРД, VK и др. (наподобие системы middleware в express.js)?

    lastuniverse
    @lastuniverse Автор вопроса
    выхлоп не поместился в вопрос, поэтому кидаю сюда:
    вывод в консоль
    test.js router.use { prefix: '/' } help 111
    help.js router.on { prefix: '/', command: 'help', target: 'join' } join 222
    help.js router.on { prefix: '/', command: 'help', target: 'join' } join 333
    test.js router.use { prefix: '!' } help 111
    help.js router.гыу { prefix: '/', command: 'help', target: 'join' } join 444
    help.js router.on { prefix: '!', command: 'help', target: 'join' } join 222
    help.js router.on { prefix: '/', command: 'help', target: 'join' } join 555
    help.js router.on { prefix: '!', command: 'help', target: 'join' } join 333
    test.js router.use { prefix: '/', command: 'help', target: 'join' } help 666
    help.js router.гыу { prefix: '!', command: 'help', target: 'join' } join 444
    help.js router.on { prefix: '!', command: 'help', target: 'join' } join 555
    test.js router.use { prefix: '!', command: 'help', target: 'join' } help 666


    Все вроде работает как надо, с ассинхронностью обработки и сохранением контекста вроде все в порядке (видно про prefix и нумерации), но меня терзают смутные сомнения))))
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    petrro, предложенное в вопросе решение не идеально, но однозначно лучше чем то что примененно в варианте с for.

    Для того чтобы понять строчки просто запустите этот код и посмотрите вывод в консоли:
    const slideAmount = 5; // количество слайдов
    for(let n=-10; n<10; n++ ){
       const slideIndex = ((n%slideAmount)+slideAmount)%slideAmount;
       console.log("n:", n, " ---> ",  "slideIndex:", slideIndex);
    }


    в консоли будет
    n: -10  --->  slideIndex: 0
    n: -9  --->  slideIndex: 1
    n: -8  --->  slideIndex: 2
    n: -7  --->  slideIndex: 3
    n: -6  --->  slideIndex: 4
    n: -5  --->  slideIndex: 0
    n: -4  --->  slideIndex: 1
    n: -3  --->  slideIndex: 2
    n: -2  --->  slideIndex: 3
    n: -1  --->  slideIndex: 4
    n: 0  --->  slideIndex: 0
    n: 1  --->  slideIndex: 1
    n: 2  --->  slideIndex: 2
    n: 3  --->  slideIndex: 3
    n: 4  --->  slideIndex: 4
    n: 5  --->  slideIndex: 0
    n: 6  --->  slideIndex: 1
    n: 7  --->  slideIndex: 2
    n: 8  --->  slideIndex: 3
    n: 9  --->  slideIndex: 4
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    0xD34F, я правильно понимаю что это надо делать как то так?

    slideIndex = (slides.length + (slideIndex + n) % slides.length) % slides.length;
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    0xD34F, ну да, это действительно лучше чем while
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    0xD34F, напрашивается решение типа такого:

    while( slideIndex < 0 ){ slideIndex += slides.length }
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    0xD34F, но тут же возникает вопрос. Что будет если слайдов 10 а мы пытаемся поставить например -24
  • Что делают эти строки в коде?

    lastuniverse
    @lastuniverse
    0xD34F, да про отрицательные номера както не подумал, добавил жирный комментарий в тело ответа.
  • Как сделать автовоспроизведение аудио?

    lastuniverse
    @lastuniverse
    L1nw0od, да, вы правы, ссылка на первый трек в коде (в вашем варианте) изначально уже была не правильной. исправил в своем варианте, тестируйте.

    https://codepen.io/lastuniverse/pen/QWWyjYq
  • Как сделать автовоспроизведение аудио?

    lastuniverse
    @lastuniverse
    L1nw0od, у меня есть подозрение что код тут не причем а причиной является сам трек (может кодек какой то другой в нем или еще что). На моем телефоне вообще конкретно этот трек не воспроизводится.
  • Как сделать автовоспроизведение аудио?

    lastuniverse
    @lastuniverse
    L1nw0od, еще раз повторюсь, это не моя работа. Я в коде сделал следующее:

    заменил
    это
    playButton.addEventListener("click", () => {
    	playerArea.classList.toggle("play")
    	if (audioPlayer.paused) {
    		setTimeout(()=> {audioPlayer.play()}, 300)
    		timer = setInterval(updateDurationLabel, 100)
    	} else {
    		audioPlayer.pause()
    		clearInterval(timer)
    	}
    }, false)

    на
    это
    const playMusic = () => {
    	playerArea.classList.toggle("play")
    	if (audioPlayer.paused) {
    		setTimeout(()=> {audioPlayer.play()}, 300)
    		timer = setInterval(updateDurationLabel, 100)
    	} else {
    		audioPlayer.pause()
    		clearInterval(timer)
    	}
    }
    
    playButton.addEventListener("click", playMusic , false);


    И если вы понимаете хот чуть в js то вам будет очевидно, что данные действия не могли испортить плеер

    далее я добавил в конец скрипта

    эти строчки
    window.onload = ()=>{
    	setTimeout(playMusic,2000);
    }

    и тут очевидно, что данный код никак не мог испортить плеер.

    таким образом, если плеер где то глючит, то очевидно что это не моя вина.

    Теперь можно поговорить предметно. В оригинальной версии плеера (той ссылку на которую вы кинули в своем вопросе) присутствует этаже проблема. если запустить музыку, затем нажать следующий или предыдущий трэк, то все работает пока мы не домотаем до трека "LA Chill Tour". При этом данная проблема наблюдается только с треком "LA Chill Tour", не знаю почему так происходит. Для решения этой проблемы предлагаю задать отдельный вопрос, может кто и сможет что подсказать.