Получить числа из строк значений свойств в объекте.
Здравствуйте, Друзья!
Нужна помощь... В голову не придет никак, ка можно это решить. Есть следующая задача: function fixAmount(amount) { return parseFloat(amount); } const orders = [ { price: 21, amount: 4 }, { price: 50, amount: '17 штук' }, { price: 7, amount: '1,5 килограмма' }, { price: 2, amount: ' 2.7 метра ' }, { price: 1, amount: 'семь единиц' } ]; for (let order of orders) { let result = fixAmount(order.amount); console.log(`Заказ на сумму: ${result * order.price} Q`); } При этом нужно получить следующее значения: Заказ на сумму: 84 Q Заказ на сумму: 850 Q Заказ на сумму: 10.5 Q Заказ на сумму: 5.4 Q Заказ на сумму: -1 Q Изменять при этом можно только функцию fixAmount. Помогите, пожалуйста. |
Если это тестовое задание -- написать ф-цию fixAmount, которая будет обладать соответствующим поведением.
Если это код с проекта, то у вас, ребята, проблемы со структурами данных) |
Это не проект. Это часть задания по курсам. Спрашивать препода - это жизнь ждать. Тут ребята поактивнее будут. Мне б понять как это можно реализовать, чтоб голова разобрала и дальнейшие задания начала делать... Спасибо за понимание!
return parseFloat(amount); я сам дописал. Только parseFloat игнорирует , и не выводит значение -1. Тут по идее следует indexOf применить. Но как ума не приложу |
RoyalHunt,
function fixAmount(amount) { if(typeof amount == "string") amount = amount.replace(',','.'); return parseFloat(amount)||-1; } |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Можно уточнить почему не работает такой вариант, который вроде как является идентичным: function fixAmount(amount) { if(amount === '') amount = amount.replace(',','.'); return parseFloat(amount)||-1; } |
RoyalHunt,
1 вариант -- если данные строка переписать зяпятую на точку. 2 вариант (ваш) - если данные отсутствуют, у несуществующих данных переписать зяпятую на точку. чем они одинаковы? |
Часовой пояс GMT +3, время: 19:36. |