无法强制对象键为整数

时间:2018-08-28 14:35:37

标签: javascript arrays object types

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

结果为15 string number。我试图遍历对象值并将它们中的一些放入Map对象中,但是类型兼容性似乎无法实现。我在这里做错了还是对象键始终是字符串?

Object.keys(obj)

还返回[“ 15”]

1 个答案:

答案 0 :(得分:4)

对象键始终是字符串。您可以查看有关here的更多信息:

  

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

要想实现所需的功能,您需要将键转换回整数。