Вернуть сумму значений в объекте
Есть объект:
const objCars = {
'reno': '$15000',
'audi': '$20000',
'bmw': '$30000',
'peogeot': '18000$'
}
Мне нужно получить сумму всех цен на авто. Решил таким образом:
const sumOfPrice = obj => {
let sum = 0;
for (let key in obj) {
let str = obj[key].replace(/\D+/g, '');
sum += Number(str);
}
return sum;
}
Но мне кажется что можно было проще решить. Пытался применить методы превращения строки в число, однако, например Number.parseInt() не отбросил лишние символы с obj[key]. Можно ли? |
NovichokJS, знак доллара у тебя будет в разных местах?
Обозначение валюты вообще лучше выводить в отдельный ключ... Сумма должна быть суммой. |
Цитата:
const obj = {
'reno': '$15000',
'audi': '$20000',
'bmw': '$30000',
'peogeot': '18000$'
}
const s = Object.values(obj).reduce((val, el) => val += +el.match(/\d+/)[0], 0)
alert(s)
|
Цитата:
|
NovichokJS, я свой вариант показал выше... ;)
|
Цитата:
|
Цитата:
2-й способ: читать все символы, если символ не число, то отбраковывать. |
Цитата:
Поняв где они - просто "вырезать" циферки, перевести их в число. |
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 15:37. |