Дима
А вообще, не вижу проблемы
А ВОТ ТЕПЕРЬ ПАБЛИК
а как?
Дима
Ну перегоняешь из буфера в int
Дима
Это же просто массив чисел
А ВОТ ТЕПЕРЬ ПАБЛИК
var bufInt = (buf.readUInt32BE(0) << 8) + buf.readUInt32BE(4); ?
А ВОТ ТЕПЕРЬ ПАБЛИК
подобно такому?
Дима
Типа того, да
Vasiliy
npm i -S cuid
Andrey
Привет. Я тут решил к редуксу добавить логгирование, подключил redux-logger через applyMiddleware. Без него все диспатчи проходят, а вот с ним не происходит ничего. В чем может быть проблема? спасибо
Дима
Применил как-то не правильно видать, просто смотри как другие делали) А вообще тут можно и у самого автора спросить 😸
Andrey
ну если ответит, буду рад)
Andrey
import { applyMiddleware, createStore } from 'redux'; import logger from 'redux-logger'; import reducer from './reducers'; const middleware = applyMiddleware(logger); export default createStore(reducer, middleware);
Kirill
createStore 2-й параметр это preloadedState
Andrey
это обязательно так? я просто засунул все в редусеры как дефолтное значение state и при инициализации возвращаю его (срабатывает default в switch)
Igor
createLogger делать сейчас не нужно ?
Andrey
после версии 3 логгер по дефолту возвращается с настройками по умолчанию
Andrey
экспортится я имею в виду
Andrey
кароче так и не разобрался где ошибка, скачал redux dev tools
Andrey 😼
Как лучше всего решить следующую задачу? Дана маска: Hello, ***** Звездочка - ровно один любой символ Дан массив строк: Hello, Abcde Hello, World Hello, me Подходят под маску, соответственно, все кроме последнего. Как проверить соответствие маске кроме как проходя циклом?
Smooth Operator
\w
Kirill
w/
Serhii
Hello, \w{5}
Smooth Operator
Hello,\s\w+
Andrey 😼
А теперь подвох
Andrey 😼
Маска должна быть изменяемой
Andrey 😼
Именно в таком формате
Andrey 😼
Любая строка, звездочки, любая строка и так далее
Andrey 😼
Регуляркой-то я знаю как это сматчить)
Smooth Operator
new RegExp
Andrey 😼
Это должно редактироваться через интерфейс и быть понятным любому идиоту
Andrey 😼
Повторюсь, именно в формате "звездочка - любой символ"
Smooth Operator
В чем проблема у тебя
Andrey 😼
В том как это сделать максимально эффективно, не используя регэкспы
Kirill
почему такая ненависть к регуляркам
Kirill
любой символ - [\s\S]
Kirill
заменяешь звездочи на это
Andrey 😼
Потому что как мне на-лету из формата "Привет, *****" конвертировать в регулярки?
Kirill
и в new RegExtp
Andrey 😼
При том, что там могут содержаться спецсимволы из регэкспов
Kirill
The regex expressions . and \s\S are not equivalent, since . doesn't catch line terminators (like new line) by default.
Sergo
почему не написать просто краткий ман в одну строку рядом с полем на тему: любой символ — paste/your/symbol и не создавать проблем?
Andrey 😼
почему не написать просто краткий ман в одну строку рядом с полем на тему: любой символ — paste/your/symbol и не создавать проблем?
Потому что девочки-операторши, которые будут это использовать, не умеют читать маны
Andrey 😼
И потому что там могут содержаться символы а-ля "+" или "?"
Kirill
экранируй и все
Alexey
let mask = 'Привет, ****! Ты ***.'; const maskRe = /(\*)+/gi; const textRe = /^[\wа-я]+$/i; let maskCache = {}; let preprocessMask = (mask) => { let tokens = []; while (match = maskRe.exec(mask)) { tokens.push({ index: match.index, length: match[0].length }); } maskCache[mask] = tokens; return tokens; }; let validateByMask = (mask, input) => { let tokens = maskCache[mask] || preprocessMask(mask); if (mask.length != input.length) return false; let indexes = tokens.map(t => t.index); for (let i = 0; i < mask.length; ) { let maskIdx = indexes.indexOf(i); if (maskIdx != -1) { let token = tokens[maskIdx]; let candidate = input.slice(token.index, token.index + token.length); if (!textRe.test(candidate)) return false; i += token.length; continue; } if (mask[i] != input[i]) return false; i++; } return true; }; console.log(validateByMask(mask, 'Привет, Вася! Ты хуй.')); //true console.log(validateByMask(mask, 'Привет, Вася! Ты пидор.')); //false console.log(validateByMask(mask, 'Привет, Димон! Ты хуй.')); //false
δμ Dmitry
давным давно натыкался на картинку, по которой можно определить сломаную кодировку ни у кого нет? а то я потерял(
Oleg
Главное чтобы за чебурашку не банили
δμ Dmitry
используй декодер артемия
у меня картинка с кривой кодировкой, этот декодер поймёт?
Kirill
а не... там текст вводится
Andrey
У меня такой вопрос: у меня некоторые сущности приходят с базы данных и я их сую в массив по индексу (ИД). то есть мне приходит sections: [ 0-> element1, 1-> element2 и тд] , а я затем прохожусь по этому массиву и заменяю его новым, где ключ это ид обекта. Каждый элемент это обьект, у которого есть поле id, он приходит с бэкенда. В итоге получается к примеру sections: [ 577-> element1, 579-> element2 и тд] Меня смущает тот факт, что массив получается с пустыми 566 ключами с 0 до 565 (со значением null). Собственно сам вопрос: нормально ли это что в массиве есть много пустых ключей, или стоит как-нибудь переделать мой подход. Я специально заменяю этот массив индексированным для быстрого поиска элементов
Alexey
а чем тебе обычный объект не люб?
Andrey
как обьект с ключами?
Alexey
{ 1488: {...}, 1489: {...} }
Andrey
у меня бэкенд на asp.net, так что не знаю, получится ли возвратить в виде обьекта, а не массива. Ща загуглю
Alexey
ну или вот из ES6
Alexey
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Map
Andrey 😼
Andrey 😼
Alexey
а если там пробел?
Alexey
Привет, ми ир!
Andrey
Dictionary<int, object>
С мапом не хочу возиться, попробую dictionary
Andrey
спасибо
Andrey 😼
а если там пробел?
А в чем проблема?
Andrey 😼
Оно же попадает под маску *****
Andrey 😼
Хоть "Привет,\s\s\s\s\s\s!" там
Alexey
ну мало ли
Alexey
вдруг * это именно текст
Alexey
так то и пробелы прокатят
Andrey 😼
Нет, именно любой символ
Дима
Нормально, но я бы юзал Map или объект
Andrey
Нормально, но я бы юзал Map или объект
я сейчас пробую с обьектом. Мне нравится этот вариант. можно использоваться будет for для итерации.
Andrey
но пока что c# ругается на меня, падла =)