Получить числа из строк значений свойств в объекте.
Здравствуйте, Друзья!
Нужна помощь... В голову не придет никак, ка можно это решить. Есть следующая задача:
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 вариант (ваш) - если данные отсутствуют, у несуществующих данных переписать зяпятую на точку. чем они одинаковы? |
Цитата:
|
RoyalHunt,
function fixAmount(amount) {
return parseFloat((''+amount).replace(',','.'))||-1;
}
|
| Часовой пояс GMT +3, время: 14:27. |