javascript - 调用 Map 对象的 Array 键
问题描述
有谁知道如何直接调用 Map Object 的数组键。
如下代码所示,我可以map.get(arr),但不能map.get([0, 1, 2, 3])
const map = new Map()
const arr = [0,1,2,3]
map.set(arr, "I am some number")
map.get(arr) // "I am some number"
map.get([0,1,2,3]) // undefined
解决方案
你不能。Map
按对象标识比较对象。[0, 1, 2, 3] !== [0, 1, 2, 3]
因为它们是不同的对象,即使它们拥有相同的数据。
您可以做的最接近的事情是尝试将数组转换为您可以有意义地比较的东西:
const map = new Map()
const arr = [0,1,2,3]
map.set(JSON.stringify([0, 1, 2, 3]), "I am some number")
console.log(map.get(JSON.stringify([0, 1, 2, 3])))
推荐阅读
- ios - GitHub Action iOS CD not show on TestFlight
- .net-core - 有没有办法将 DbSet 动态添加到 EF 核心并针对动态 DbSet 使用 Linq?
- python - 为什么在 .png 格式的图像中检测到彩色像素,但在 .jpg 格式的图像中检测不到?
- python - I have a script that runs forever, how can I run it at startup in the background on macos?
- eslint - 如何解决更漂亮/更漂亮的问题
- import - 使用 @mapbox 而不是 'mapbox-gl' 来导入 mapbox
- excel - 相对路径与绝对路径
- php - 重新索引数组并添加总计
- reactjs - React Material Treeview,使用扩展属性时单击时树节点未扩展
- c# - 瀑布对话框中的主动消息 Microsoft Bot Framework