Дима
Oleg
Anonymous
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite тут же все описано, контракт этой функции (и ссылка на стандарт для недоверчивых). В чем проблема?
Sergey
Oleg
Sergey
Anonymous
Oleg
parseFloat
Oleg
Во
Oleg
Предложили уже
Oleg
НО
Oleg
Это автоматически означает что данные кривые передаются
Oleg
Но парсефлоат помогает тут, да
Anonymous
В общем надо регуляркой проверять, что все символы числа)
Oleg
Не обязательно
Oleg
Но можно и так
Anonymous
Sergey
Sergey
А еще 123E+2
Дима
+- Infinite
Дима
и hex
Oleg
И кровь единорога
Sergey
мое решение кстати тоже на пустой строке валится)
Anonymous
isNumeric('123E+2');
true
Oleg
Так какая точная формулировка задачи?
Anonymous
Oleg
Проверить что это число десятичное?
Oleg
Ну вот, решение
Oleg
О чем этот весь диалог? :D
Sergey
О том что надо тоже но без window.isFinite
Anonymous
диалог о другой реализации. альтернативной и почему она не подходит)
Oleg
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill
Oleg
Всё придумано до нас
Oleg
А хотя нет, оконный же нельзя
Oleg
А что за извращенская платформа?
Sergey
var isNumeric2 = (n)=>{
let n2 = +n;
return n2 === parseFloat(n) && Number.isFinite(n2);
}
Oleg
Ну и собственно достаточно в строку превратить аргумент и вернуть на инфинити или нан фалс
Sergey
Oleg
Ну и если через плюс не нан - то ок
Oleg
Так что решение не сложное
Sergey
Anonymous
Anonymous
тесты хорошие делаете, может ещё скорость замерите как в прошлый раз?
Oleg
Только там же из финити, только намберовый юзается
Oleg
Или так можно?
Sergey
Еее. Мы по кнону. Хоть и меленно наверняка)))
Oleg
Так не интересно тогда :D
Anonymous
ЖС даёт альтернативы, если вникать в тонкости языка)
Sergey
Кстати это я еще дурью маялся похоже
Anonymous
просто его нужно уметь готовить и знать все тонкости)
Sergey
Number.isFinite(+n); же эквивалентно isFinite(n) выходит
Oleg
Oleg
Точка от скобки, да
Sergey
т.е. можно было
var isNumeric2 = (n)=>{
return !Number.isNaN(parseFloat(n)) && Number.isFinite(+n);
}
Anonymous
Number.isFinite(+true);
true
Anonymous
да
Sergey
isFinite(true) тоже true
Anonymous
ну что теперь в транспилятор эту конструкцию пустим? :)
Oleg
Так вот оно что
Oleg
А я то думаю что за извращенства
Oleg
Если у вас там ифы запретят - на if тоже есть полифил
Anonymous
по сути ничего не меняется
Anonymous
=)))
Sergey
Дима
Дима
Стрелочные функции безо всего остального вообще уже являются полными по тьюрингу
Дима
Правда тогда получится не жс а хаскель
Oleg
Anonymous
Anonymous
не работает такой IF
Oleg
Я знаю с массивами полифил
Oleg
[elseFn, ifFn][condFn()]()
Oleg
На лямбдах ещё не видел
Oleg
Или видел, но не принял как на лямбдах
Anonymous
Дима
Да