javascript - 不能强制对象键为整数
问题描述
const obj = {
15: 100
};
for(let key in obj)
console.log(key, typeof(key), typeof(+key))
结果是15 string number
。我正在尝试迭代对象值并将其中一些放入 Map 对象中,但类型兼容性似乎无法实现。我在这里做错了什么还是对象键总是字符串?
Object.keys(obj)
也返回 ["15"]
解决方案
对象键始终是字符串。你可以在这里看到更多关于它的信息:
属性名称必须是字符串。这意味着非字符串对象不能用作对象中的键。任何非字符串对象,包括数字,都通过 toString 方法类型转换为字符串。
为了能够实现您想要的,您需要将键转换回整数。
推荐阅读
- python - 如何删除由类方法函数制作的数据框中的各个(相似)元素?
- docker - Docker Swarm 和 Nginx + Varnish
- python - 如何避免python脚本中的纯文本密码?
- powershell - 可以使用 Powershell Uninstall-WindowsFeature -Remove 命令恢复已删除的功能吗?
- symfony - Symfony 4 - Webpack Encore 的错误资产路径
- javascript - 数据表为包含搜索项的所有行着色
- delphi - Delphi FMX TTreeView 参数超出范围异常
- java - 上传后刷新和图像而不刷新整个页面Java反应
- linux - 在 vm 共享文件夹中编译 ONOS 时权限被拒绝
- node.js - Mikro-orm 教程 - Ben Awad lireddit - 尝试运行第一次迁移