Вернуть сумму значений в объекте
Есть объект:
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, время: 21:39. |