Отформатированный массив элементов
Подскажите пожста, что нужно вставить вместо троеточия в моем коде чтобы дало нужный результат?
Надо чтобы в новый массив не попадали элементы с буквами. const cleanTransactionsList = arrTransactions => { let arrToStr = arrTransactions.join().trim(); let arrFormatted = arrToStr.split(','); let arrRes = arrFormatted.map((elem) => { if (elem.includes(...)) { ... } return '$' + parseFloat(elem).toFixed(2); }); return arrRes; } console.log(cleanTransactionsList([' 1.9 ', '16.4', 17, ' 1 dollar '])); // ['$1.90', '$16.40', '$17.00'] |
NovichokJS,
const cleanTransactionsList = arrTransactions => { return arrTransactions.filter(elem => elem == +elem).map(elem => { return '$' + Number(elem).toFixed(2); }); } console.log(cleanTransactionsList([' 1.9 ', '16.4', 17, ' 1 dollar '])); // ['$1.90', '$16.40', '$17.00'] |
Цитата:
1). Что значит +elem ? 2). можно всё же условие вставить в мой код, я так старался соорудив его и хотелось получить условия чтобы он сработал. Понимаю что мой код не очень может качественный. Заранее благодарю! |
Рони, также я запустил ваш код, он выводит только [ '$17.00' ] - подхватывает только цифры, а строчные элементы массива нет
|
1.
Цитата:
2. не осилил ... 3. не верю |
Цитата:
|
Цитата:
|
Цитата:
Всё работает. А каким образом убираются всё лишнее? имею ввиду пробелы. Получается что метод filter() привел в порядок(удалил пробелы) ? |
рони,
и еще вопрос последний. Как так выходит что это выражение elem => elem == Number(elem) не запушило в новый массив элемент NaN вместо '1 dollar' ? Ведь если сделать console.log(Number('1 dollar')); то получаем NaN |
NovichokJS,
удалил пробелы Number, когда строку преобразовывал в число. == не строгий метод сравнения, тоже самое попытался преобразовать в числа оба операнда, в отличие от === который сравнивает тип, поэтому ничего не преобразует. |
Часовой пояс GMT +3, время: 10:04. |