gpt4 book ai didi

javascript - 从 Map 获取与所使用的原始键相同但不是引用的值

转载 作者:行者123 更新时间:2023-11-28 04:30:12 24 4
gpt4 key购买 nike

我正在尝试使用 map而不是我想要拥有复杂键的某些数据的对象。由于我可以使用对象作为映射中的键,因此对我来说这似乎比使用字符串化和连接键的对象键更干净,例如,

const datum = {
large: 'chunk',
of: 'data'
}
const ids = [10797, 11679, 10679, 10160, 11681, 01802]
const view = 142171
const selectedDateRange = 'ONE_MONTH'
const objKey = {
ids,
view,
selectedDateRange
}
const data = new Map()
data.set(objKey, datum)
console.log(data.get(objKey)) // this works and i see the data
const objKeyRef = objKey
console.log(data.get(objKeyRef)) // also works and i see the data

但是,如果将 key 赋予 get ,则它将不起作用没有===所设置的 key 。

data.get({
ids,
view,
selectedDateRange
}) // undefined

这在 the documentation 中很清楚(尽管我并没有真正看到它解释了原因)。我想知道是否有办法解决它。我希望能够稍后组合键并从 map 中获取它们的值。

是否有任何方法可以从映射中获取值,而无需访问 === 的对象用于 set 的 key 是吗?

最佳答案

如果对象是可序列化的,您可以JSON#stringify该对象。因为它是一个字符串,所以当您将来组装它时我们就会工作。

const datum = {
large: 'chunk',
of: 'data'
}
const ids = [10797, 11679, 10679, 10160, 11681, 01802]
const view = 142171
const selectedDateRange = 'ONE_MONTH'
const objKey = {
ids,
view,
selectedDateRange
}
const data = new Map()

data.set(JSON.stringify(objKey), datum)

const result = data.get(JSON.stringify({
ids,
view,
selectedDateRange
}))

console.log(result)

关于javascript - 从 Map 获取与所使用的原始键相同但不是引用的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44682447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com