@WarriorKodeK

Как преобразовать строки в числа в объекте?

Всем привет. Мне надо все строки в объектах распарсить в числа. Подскажите как можно сделать?
"prices": {
    "eur": {
        "per_user": 23,
        "periodic": 212
    },
    "sek": {
        "per_user": "12",
        "periodic": "222"
    },
    "usd": {
        "per_user": "12",
        "periodic": "21"
    }
}


forEach(prices, (value, key) => {
      key.value['per_user'] = parseInt(value.per_user);
      key.value['periodic'] = parseInt(value.periodic);
    });
  • Вопрос задан
  • 99 просмотров
Решения вопроса 3
rockon404
@rockon404
Frontend Developer
for (let price in prices) {
  price['per_user'] = parseInt(price['per_user']);
  price['periodic'] = parseInt(price['periodic']);
}
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Снова все показали, как делать надо. А я покажу, как делать не надо :-)
var obj = {"prices": {
    "eur": {
        "per_user": 23,
        "periodic": 212
    },
    "sek": {
        "per_user": "12",
        "periodic": "222"
    },
    "usd": {
        "per_user": "12",
        "periodic": "21"
    }
}};
// СУПЕР КОД
var result = JSON.parse(JSON.stringify(obj), function (a, b) {
    if (typeof b === 'string') {
        b = +b;
    }
    return b;
});
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Object.keys(prices).forEach(currency => 
  Object.keys(prices[currency]).forEach(key => 
    prices[currency][key] = parseInt(prices[currency][key])
  )
)



Ну или ваш вариат с хардкодом ключей
Object.keys(prices).forEach(currency => {
  prices[currency].per_user = parseInt(prices[currency].per_user)
  prices[currency].periodic = parseInt(prices[currency].periodic)
})

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы