当我将对象的值从文本更改为数字时,在javascript中出现错误nan
我是 javascript 新手。我在将具有字符串值的对象转换为数字值时遇到问题。
例如,这是我拥有的对象:
{ _redis: '3', _mysql: '2', _nodejs: '5', _mongo: '4', _python: '3' }
{ _redis: '3', _mysql: '2', _nodejs: '5', _mongo: '4', _python: '3' }
我想用数字而不是这样的字符串来获取对象:
{ _redis: 3, _mysql: 2, _nodejs: 5, _mongo: 4, _python: 3 }
这是我所做的功能,但它对我不起作用,我不明白为什么。
回答
Object.keys给你一个键数组。解构[key, value]从密钥-一个字符串-不会给你的键和值,但第一个字符,第二个字符。
Object.entries改为使用,并将映射条目数组转换回对象Object.fromEntries:
function convertObjectWithStrToNumber(engineerDetails) {
return Object.fromEntries(
Object.entries(engineerDetails).map(
([key, value]) => [key, Number(value)]
)
);
}
let engineer = {
_redis: '3',
_mysql: '2',
_nodejs: '5',
_mongo: '4',
_python: '3'
};
console.log(convertObjectWithStrToNumber(engineer));