All streams
Search
Write a publication
Pull to refresh
4
0
Леготкин Алексей @ThisMan

User

Send message

webpack двигается в сторону полноценного SDK для веб приложений

Если я правильно понял задание с массивом, то нам нужно просто посчитать индексы значений, которые меньше k, получим массив (пример) [0, 1, 3, 4], а потом пройдем циклом по элементам и если следующий индекс больше предыдущего на 2 и больше, значит нужна перестановка.


Код на js
const array = [2, 7, 9, 5, 8, 7, 4]
const k = 5

const groupNearK = function (arr, k) {
    const length = arr.length
    const idx = []
    let moveCount = 0

    for(let i = 0; i < length; i++) {
        if(arr[i] <= k) idx.push(i)
    }

    for(let i = 1; i < idx.length; i++) {
        if((idx[i] - idx[i - 1]) > 1) moveCount++
    }

    return moveCount
}

console.log(groupNearK(array, k))

Решение за один цикл
const array = [2, 1, 5, 6, 3]
const k = 3

const groupNearK = function (arr, k) {
    const length = arr.length
    let moveCount = 0
    let lastIndex = -1

    for(let i = 0; i < length; i++) {
        if(arr[i] <= k) {
            if(lastIndex >= 0 && (i - lastIndex) > 1) {
               moveCount++
            }

            lastIndex = i
        }
    }

    return moveCount
}

console.log(groupNearK(array, k))

Решается в один цикл


Код на js
let result;

for(let i = 50; i <= 100; i++) {
    if(
        (i % 2 === 0) &&
        (i % 3 === 0) &&
        (i % 5 === 3)
    ) {
        result = i
    }
}

console.log(result)

Пример с React и state в первом пункте не совсем правильный. Ошибкой будет


Cannot read property 'items' of null

так как явно не указан state, а по умолчанию он равен null

Вам еще не надоело хаить инструменты? Тут ведь все сводиться к делу вкуса: кто-то любит низкоуровневый Redux, где ты контролируешь весь поток данных, кто-то любит абстракции и магию, не задумываюсь о реализации всего этого. Но с чего это ваши личные предпочтения вдруг делают %инструмент_нейм% ужасным, неэффективным и вообще использование его становится моветон. Есть же альтернативы, так используйте их, зачем писать эти статьи? Я как новичок из них ничего не получу, так как легко могу найти статьи за и против любого инструмента. Все равно придется пробовать самому.
Кому-то нравится электродрель, кому-то молоток и гвозди, а кому-то легче нанять рабочих и вообще не париться.

Отдельных верстальщиков нет, точнее есть, но они в других проектах, а там уже не известно используют они React или нет. На нашем проекте вставал вопрос о разделении на верстальщика и разработчика фронта, но потом поняли, что это избыточно.

Какая-то реклама собственного фреймворка, на основе унижения React-а.
Участвую в проекте разработки CRM, пишем на React-е, есть огромная библиотека простых виджетов/ui-компонентов, которые используются/переиспользуются вполне благополучно. Да, тем кто раньше писал только ООП сложно поменять парадигму и перейти на функциональных подход к компонентам, поэтому все еще используют наследование и перегрузку методов, вместо HOC, но это лечится)

Я для решения проблемы дублирования редьюсеров использовал один редьюсер, который хранит в себе несколько стейтов, которые могут динамически создаваться и обращаться к ним можно по имени


Пример c counter
const COUNTER_INCREMENT = "counter increment"
const COUNTER_DECREMENT = "counter decrement"
const COUNTER_INIT = "counter init"

const getInitialCounter = ({
    counter: 0
})

const counter(initialState = {}, action) {
    const {payload, type} = action;

    switch(type) {
        case COUNTER_INIT: {
            const {name} = payload

            return {
                ...state,
                [name]: getInitialCounter()
            }
        },
        case COUNTER_INCREMENT: {
            const {name} = payload
            const oldCounter = state[name]
            const updatedCounter = {
                counter: oldCounter.counter++
            }

            return {
                ...state,
                [name]: updatedCounter
            }
        }
        case COUNTER_DECREMENT: {
            const {name} = payload
            const oldCounter = state[name]
            const updatedCounter = {
                counter: oldCounter.counter--
            }

            return {
                ...state,
                [name]: updatedCounter
            }
        }
        default return state;
    }
}

const incrementCounter(name) => ({type: COUNTER_INCREMENT, name})
const decrementCounter(name) => ({type: COUNTER_DECREMENT, name})
const initCounter = (name) => ({type: COUNTER_INIT, name})

C девтулзом хорошо дружит, потому что всегда можно посмотреть, какое имя передается в payload и тем самым понять, какой именно стейт в редьюсере будет изменен

Звучит как какое-то будущее, где приложения меняются визуально в зависимости от внешних факторов: утром цвета яркие, сочные, что бы взбодрить меня, ближе к вечеру становятся нейтральными, что бы глаза не уставали и т.д. Пусть еще анализируют элементы по которым я чаще всего кликаю/тапаю что бы располагать их ближе друг к другу или более оптимально. Вообще тут много и долго можно фантазировать и идея действительно интересная
Важен не размер, а вращение в векторном пространстве


Теперь у меня есть отговорка перед девушками)
Жаль в js нет перезагрузки операторов, вот так бы началось веселье!!!
Это дает разработчику знание какой синтаксис и API он может использовать.

Для каждой версии браузера/движка, для каждой операционной системы и конфигурации железа оптимальный таймаут будет разный.

Это теперь к кроссбраузерности добавится кросспроизводительность? Ну, спасибо!
С нынешней схемой развития js, всегда будет необходимость в babel-e (других транспиляторах).Каждый раз всегда будет esX, которым хотят пользоваться, но которые еще не поддерживается в браузерах. К тому же, думаю и babel не такие дураки. уже сейчас есть babel-preset-env, где можно указать версию браузера, для которого билдится код и так уменьшить количество изменений.
Есть еще такая штука, правда не ради обучения, а ради веселья.
Может тогда дать возможность читателям решать, какая у статьи сложность? Тем же голосванием ( еще одна иконка рядом с просмотрами )
С тех пор метр определялся как 1 650 763.73 длин волн оранжевой линии

К слову, секунда давно перестала быть долей тропического года, теперь это время, равное 9192631770 периодам излучения,


Непонятно только, откуда взялись именно ТАКИЕ числа, почему 9192631770, а 9192631771? Числа как-то специально подгонялись под какие-то нужны?
Вы не думали о фиксированном меню сверху? Иногда очень надоедает скроллить вверх, что бы перейти в другой раздел меню ( например на geektimes). Хотя бы на странице списка новостей, где оно бы не сильно мешало ( В самом посте скорее всего такая вещь не нужна )
В чем же именно причина такого поведения? Не думаю, что это только из-за того, что мозгу «лень» переучиваться.

Может проблем в конкурентности чувств. То есть пока человек слеп, связи от тактильных нейронов становятся сильнее ( так как используются чаще ), а вот зрительные нервы вообще отдыхают. В итоге, когда человек получает зрение, уровень «доверия» к этому новому чувствую гораздо меньше, поэтому выбирая между тем, от кого получать информацию мозг выбирает более «сильное» чувство.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity