当我将对象的值从文本更改为数字时,在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));


以上是当我将对象的值从文本更改为数字时,在javascript中出现错误nan的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>