首页 > 解决方案 > 调用 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

标签: javascriptdictionary

解决方案


你不能。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])))


推荐阅读