Дима
Был бы flow — таких вопросов бы не возникло 😅
ixplo
или не надо ))
Дима
надо конечно же
ixplo
чот я туплю, мне не надо )
ixplo
flow это либа? _
Дима
flowlang
Дима
Как тс, только надёжный
Дима
Конкретно в твоём случае он просто форсит хорошие практики, заствляя тебя js-надёжно приводить "наверное число" к числу
ixplo
тут не подойдёт. мини-проект, пидорю каждую строчку )
Дима
А мог бы не пидорить а нормально работать)
Дима
Он даже транспиляции может не требовать, если описывать типы в комментариях
ixplo
ixplo
Дима
> Ювелирка
> Без типов
Противоречие
Konstantin
строка.replace(/\D/g, '') * 1
ixplo
ну крч, у меня есть строка, которая содержит некую длину. но этой строки может и не оказаться в сферическом вакууме. и надо лишь проверить на то, что длина > 0
ixplo
ixplo
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
Дима
а свич?
Да, конечно же свич, поправил
Konstantin
а чо мой способ не подходит?
Дима
регэкспы — зло
Дима
Плюс это совершенно неподдерживаемо
Konstantin
как это
Дима
Никак не поддерживаемо
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
ixplo
это да
bgnfu7re
а зойчем так делать?
ixplo
может быть такая задача )
bgnfu7re
ну как будет, тогда будет писАться. А так сразу эт оверкилл
Дима
Вообще прозрачнее всего работать с Maybe объектом
Konstantin
задача стояла выдрать число из строки :)
ixplo
давайте, начистите друг другу лица
Konstantin
не, всё конструктивно
CherryTea
Konstantin
(строка * 1) || 0
ixplo
Дима
ixplo
осталось выяснить что быстрее: *1 или +0... или ваши варианты
Дима
Все варианты фигня с точки зрения быстроты
Дима
~~stringNum быстрее всех
Дима
И поверь мне ты загоняешься вообще не о том)
ixplo
ixplo
аа
ixplo
я подумал, что это какая-то херня из flow сначала )
Дима
Я даже без типов записал специально
Дима
И в отличии от ts, flow принчипиально не вносит ничего в рантайм синтаксис
ixplo
Дима
говорю же, его даже через комменты юзать можно
CherryTea
Дима
Дима
Я сначала через if записывал, и у себя так пишу, но подумал что для примера switch будет понятнее
ixplo
~~stringNum быстрее всех
нене, ну честно, это самая короткая запись, которая делает, то, что надо. у меня как раз целые числа
ixplo
даже обидно, что не пригодится
Дима
Я это к первоначальной формулировке вопроса, так как ответ ты уже всё равно получил)
Дима
То бишь перевести nullable string/number в конечное число
ixplo
я тильду юзаю в indexOf 😇
ixplo
грешновато?
Дима
Отстойная запись