Дима
Был бы flow — таких вопросов бы не возникло 😅
ixplo
или не надо ))
Дима
надо конечно же
ixplo
чот я туплю, мне не надо )
ixplo
flow это либа? _
Дима
flowlang
Дима
Как тс, только надёжный
Дима
Конкретно в твоём случае он просто форсит хорошие практики, заствляя тебя js-надёжно приводить "наверное число" к числу
ixplo
тут не подойдёт. мини-проект, пидорю каждую строчку )
Дима
А мог бы не пидорить а нормально работать)
Дима
Он даже транспиляции может не требовать, если описывать типы в комментариях
ixplo
Дима
> Ювелирка > Без типов Противоречие
Konstantin
строка.replace(/\D/g, '') * 1
ixplo
ну крч, у меня есть строка, которая содержит некую длину. но этой строки может и не оказаться в сферическом вакууме. и надо лишь проверить на то, что длина > 0
ixplo
строка.replace(/\D/g, '') * 1
undefined ещё бывает
Konstantin
(строка.replace(/\D/g, '') || 0) * 1
bgnfu7re
parseInt(str) || 0
Дима
function maybeNumber(value) { if (value == null) return 0 switch (typeof value) { case 'string': return isFinite(value) ? parseInt(value, 10) : 0 case 'number': return Number.isNaN(value) ? 0 : value default: return 0 } }
Konstantin
а свич?
ixplo
parseInt(str) || 0
а ты неплох )
Дима
а свич?
Да, конечно же свич, поправил
Konstantin
а чо мой способ не подходит?
Дима
регэкспы — зло
Дима
Плюс это совершенно неподдерживаемо
Konstantin
как это
Дима
Никак не поддерживаемо
ixplo
а чо мой способ не подходит?
undefined у тебя не обрабатывается
Konstantin
регэкспы мощь)
Konstantin
обрабатывается
Konstantin
0 будет
Дима
регэкспы мощь)
Нужно не мощно, нужно пожжерживаемо
ixplo
undefined.replace ???
ixplo
я ничего не путаю? )
ixplo
Uncaught TypeError: Cannot read property 'replace' of undefined
Konstantin
ну ёпрст
ixplo
+ ""
ixplo
забыл добавить )
Konstantin
да
ixplo
parseInt(str) || 0
это показалось мне элегантней ) да и нужда отпала уже, всем спасибо :D
Konstantin
Нужно не мощно, нужно пожжерживаемо
зато моя хрень вернёт норм число если даже на входе будет 'тест1тест2'
ixplo
это да
bgnfu7re
а зойчем так делать?
ixplo
может быть такая задача )
bgnfu7re
ну как будет, тогда будет писАться. А так сразу эт оверкилл
Дима
зато моя хрень вернёт норм число если даже на входе будет 'тест1тест2'
Это не поддерживаемо. Подерживаемо — когда твоё решение работает без нужны вчитываться в клингонский диалект регэкспов и позволяет свободно менять опции и параметры работы функции
Дима
Вообще прозрачнее всего работать с Maybe объектом
Konstantin
задача стояла выдрать число из строки :)
ixplo
давайте, начистите друг другу лица
Дима
задача стояла выдрать число из строки :)
нет, задача стояла конвертироваь какие-то сырые данные в подходящий для работы объект Даже если автор её бы так и не сформулировал
Konstantin
не, всё конструктивно
Konstantin
(строка * 1) || 0
ixplo
(строка * 1) || 0
а ты хорош
ixplo
осталось выяснить что быстрее: *1 или +0... или ваши варианты
Дима
Все варианты фигня с точки зрения быстроты
Дима
~~stringNum быстрее всех
Дима
И поверь мне ты загоняешься вообще не о том)
CherryTea
Что не так?
условные присвоения не пофеншую
ixplo
аа
Дима
условные присвоения не пофеншую
Это единственно верный вариант тернарного оператора за исключением записи в одну строку
ixplo
я подумал, что это какая-то херня из flow сначала )
Дима
Я даже без типов записал специально
Дима
И в отличии от ts, flow принчипиально не вносит ничего в рантайм синтаксис
ixplo
Дима
говорю же, его даже через комменты юзать можно
Дима
Я сначала через if записывал, и у себя так пишу, но подумал что для примера switch будет понятнее
ixplo
~~stringNum быстрее всех
нене, ну честно, это самая короткая запись, которая делает, то, что надо. у меня как раз целые числа
ixplo
даже обидно, что не пригодится
Дима
Я это к первоначальной формулировке вопроса, так как ответ ты уже всё равно получил)
Дима
То бишь перевести nullable string/number в конечное число
ixplo
я тильду юзаю в indexOf 😇
ixplo
грешновато?
Дима
Отстойная запись