Добрый день,
второй день бьюсь над задачей, но безрезультатно.
Дважды пробовала прописать решение "с нуля", но выходит полная фигня:
Вариант 1
let Num = []; // создаем пустое множество
export const extractNumber = (s) => {
s = s.split (''); // делим имеющуюся строку на части
for (let i = 0; i < s.length; i++) { // создаем цикл
if (s[i]>=0 && s[i]<=9 || s[i] === '.') { //если частица - число или точка, то:
Num += s[i]; // включаем частицу в множество
}
(i++); // если нет, переходим на следующее
}
return Number(Num);
}
Итог:
5.9
5.913
5.9131
NaN
Тут для меня не понятно, почему программа (а) выборочно выводит числа, (б) добавляет строки одна к другой 🙁
Вариант 2
export const extractNumber = (s) => {
let arr = s.split (''); // делим имеющуюся строку на части
let Num = []; // создаем пустое множество
for (let i = 0; i < arr.length; i++) { // создаем цикл
if (Number(arr[i]) !== NaN) { // если часть, переведенная в число, не является "не числом"
Num = arr[i]; // меняем значение множества
}
(arr++); // если нет, переходим на следующее
}
return Num; // возвращаем множество
}
Итог:
$
E
1
a
Тут оно вообще почему-то выбивает первый символ (и без разницы число/не число), и дальше не идет. 🙁
Помогите, пожалуйста!