首页 > 解决方案 > 不能强制对象键为整数

问题描述

const obj = {
15: 100
};
for(let key in obj)
    console.log(key, typeof(key), typeof(+key))

结果是15 string number。我正在尝试迭代对象值并将其中一些放入 Map 对象中,但类型兼容性似乎无法实现。我在这里做错了什么还是对象键总是字符串?

Object.keys(obj)

也返回 ["15"]

标签: javascriptarraysobjecttypes

解决方案


对象键始终是字符串。你可以在这里看到更多关于它的信息:

属性名称必须是字符串。这意味着非字符串对象不能用作对象中的键。任何非字符串对象,包括数字,都通过 toString 方法类型转换为字符串。

为了能够实现您想要的,您需要将键转换回整数。


推荐阅读