Javascript 无法强制对象关键帧为整数

Javascript 无法强制对象关键帧为整数,javascript,arrays,object,types,Javascript,Arrays,Object,Types,结果是15个字符串编号。我试图迭代对象值,并将其中一些值放入Map对象中,但类型兼容性似乎无法实现。我是做错了什么,还是对象键总是字符串 const obj = { 15: 100 }; for(let key in obj) console.log(key, typeof(key), typeof(+key)) 还返回[15]对象键始终是字符串。你可以看到更多关于它的信息: 属性名称必须是字符串。这意味着非字符串对象不能用作对象中的键。任何非字符串对象(包括数字)都通过toStrin

结果是15个字符串编号。我试图迭代对象值,并将其中一些值放入Map对象中,但类型兼容性似乎无法实现。我是做错了什么,还是对象键总是字符串

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

还返回[15]

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

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


为了实现您想要的目标,您需要将关键点转换回整数。

因为它们实际上就是整数。如果你想让它们成为数字,就把它们映射到一个数字上。Object.keysobj.mapk=>+kGood guess,无论是否用引号表示,对象键都是字符串。请参阅问题:即使数组的键在内部也是字符串:console.logObject.keys[1,2,3,4];谢谢你给我讲解这个话题
Object.keys(obj)