You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript对象中根据指定值获取关联键?

解决方法:从随机值反向获取对象关联键

方案一:直接同时获取随机键值对(推荐,更高效)

不用先单独拿值再反向找键,直接随机选中键,同时拿到对应的键和值,避免二次遍历对象:

let characterJobList = {
  'Jack': 'Fighter',
  'Elaine': 'Healer',
  'Swift': 'Spy',
  'Teddy': 'Smith'
}

// 获取对象所有键的数组
const keys = Object.keys(characterJobList);
// 生成随机索引选中一个键
const randomKey = keys[Math.floor(Math.random() * keys.length)];
// 通过键拿到对应的值
const randomValue = characterJobList[randomKey];

console.log(`随机角色:${randomKey},职业:${randomValue}`);

方案二:已有随机值时反向查找关联键

如果已经通过原有代码拿到了randomizeValues,可以通过遍历对象键的方式匹配对应的键:

let characterJobList = {
  'Jack': 'Fighter',
  'Elaine': 'Healer',
  'Swift': 'Spy',
  'Teddy': 'Smith'
}

const arrayLength = Object.keys(characterJobList).length
const randomizeValues = characterJobList[Object.keys(characterJobList)[Math.floor(Math.random() * arrayLength)]]

// 查找与随机值匹配的第一个键
const matchedKey = Object.keys(characterJobList).find(key => characterJobList[key] === randomizeValues);

console.log(`随机职业:${randomizeValues},对应角色:${matchedKey}`);

注意事项

如果对象中存在多个相同的value,find方法只会返回第一个匹配的键。如果需要获取所有匹配的键,可以把find换成filter,得到一个包含所有匹配键的数组。

内容的提问来源于stack exchange,提问作者KiritoLyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:52:07