Из объекта получить число можно в нескольких ситуациях: если объект преобразован в строку и из нее необходимо получить число, если число должно сформироваться из ключей объекта, если число должно сформироваться из значений объекта. Рассмотрим каждый из случаев.
Если объект преобразован в строку, он имеент либо JSON формат, либо разделенные символами пары ключей и значений. Рассмотрим ситуацию, когда это JSON, а для преобразования в число применим метод match(). Об остальных способах получения из объекта строки можно прочитать в соответствующей главе мануала. Cпособы получения из строки числа в этой главе.
let object = {
name: 'Иван',
age: 45,
mail: 'ivan999@mail.com'
};
let stringifyObject = '{"name":"Иван","age":45,"mail":"ivan999@mail.com"}';
let number = +stringifyObject.match(/\d/g).join(''); // 45999
Для получения числа из ключей объекта удобней всего воспользоваться функцией Object.keys(), которая возвращает массив из ключей. А дальше из массива получим число (подробней о способе в этой главе).
let object = {
1: 'Иван',
2: 'Петр',
45: 'Олег',
name666: 'Лука'
};
let arrayOfKeys = Object.keys(object); // ['1', '2', '45', 'name666']
let number = +arrayOfKeys.map(item => item.match(/\d/g).join('')).join(''); // 1245666
Для получения числа из значений объекта существует функцией Object.values(), которая возвращает массив из значений.
Рассмотрим случай, когда значение может быть числом. Для этого полученный массив необходимо будет преобразовать в строку другим способом. А дальше уже из строки получим число.
let object = {
id: 345,
name: 'Иван',
mail: 'ivan999@mail.com'
};
let arrayOfValues = Object.values(object); // [345, 'Иван', 'ivan999@mail.com']
let string = arrayOfValues.join(''); // '345Иванivan999@mail.com'
let number = +string.match(/\d/g).join(''); // 345999