【发布时间】:2019-02-03 05:44:12
【问题描述】:
const obj = {
15: 100
};
for(let key in obj)
console.log(key, typeof(key), typeof(+key))
结果是15 string number。我正在尝试迭代对象值并将其中一些放入 Map 对象中,但类型兼容性似乎无法实现。我在这里做错了什么还是对象键总是字符串?
Object.keys(obj)
也返回 ["15"]
【问题讨论】:
-
因为它们实际上就是这样。如果您希望它们成为数字,则将其映射到数字。
Object.keys(obj).map(k => +k) -
猜对了,对象键是字符串,无论你是否用引号表示它们。查看问题:stackoverflow.com/questions/4348478/…
-
即使是数组的键,在内部也是字符串:
console.log(Object.keys([1,2,3,4])); -
感谢您用解释引导我进入主题
标签: javascript arrays object types