Ответы пользователя по тегу JavaScript
  • Как оптимизировать этот JS код?

    @ar5
    Можно сделать одним проходом. Взять сумму и вычитать по циклу каждое число и через indexOf проверять есть ли этот остаток в массиве. И запоминать если он меньше предыдущего. И у вас получится за один проход проверить все комбинации.
    Ответ написан
  • Как правильно реализовать такой routing Angular 2+?

    @ar5
    Посмотрел комментарии, да вроде ничего сложного нет, либо это можно через store сделать. В желтом компоненте подписаться на изменение стора, куда ты будешь пихать в массив id машин допустим и от этого отображать те или иные состояния твоего верхнего бара. Или можешь сделать через query parameters и подписаться на них. /?selectedcars=1,2,3,4,5 что бы еще с urla нельзя было добавить некорректные id.
    А по поводу роутинга можно сделать, если исходить что это главная страница
    '/'
       '/info'
           ' '
           '/map'
           '/status'
            'report'

    Еще зависит может быть у тебя машина не выбрана?
    Ответ написан
  • Как сгенерировать svg из waveform от голосового сообщения во ВКонтакте?

    @ar5
    Для начала понять как формируется путь и из каких параметров он состоит.
    https://developer.mozilla.org/ru/docs/Web/SVG/Tuto...

    Дальше можно увидеть что рисуется вертикальная линия. А после M стоит сдвиг вправо.
    Как бы я сделал. Обошел бы массив и добавлял бы в массив строковые значения, которые бы потом объединил.

    Вот код если хочешь поразбирайся. Первый параметр это waveform а второй я не понял какое-то число от 127 до 128.

    function s(e, t) {
            t = Math.round(t), e.length != t && (e = a.fastResample(e, t));
            for (var n = "", i = 0, r = 0; r < e.length; r++)
                i = Math.floor(10 * e[r] * .95), 0 == i && (i = .5), n += "M" + (3 * r + 1) + "," + (10 - i) + "v" + 2 * i + "Z";
            return '<svg class="audio-msg-track--wave" width="' + 3 * e.length + 'px"><path d="' + n + '"></path></svg>'
        }
    
    function a.fastResample(e, t) {
            var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "peak";
            return new l({
                srcSampleRate: e.length,
                dstSampleRate: t,
                normalizeAlgorithm: n,
                truncateTo: 0
           }
    Ответ написан
    Комментировать