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

JavaScript中如何获取对象指定键而非对应值,无需额外创建冗余对象

解决方案
  • 获取对象所有键:可直接使用JS原生Object.keys()方法,传入目标对象后会返回由所有一级键名组成的数组,可直接调用数组的sort()方法完成键排序,刚好匹配你的需求:
var CapitalLetters = {
  "A" : [
    "M40,60 v-20 l10,-20 l10,20 v20 v-15 h-20 ",
  ]
}
// 得到键名数组:['A']
const keys = Object.keys(CapitalLetters)
// 键排序,默认按字符编码顺序排列,支持自定义排序规则
const sortedKeys = keys.sort()
  • 判断指定键是否存在:无需额外遍历,直接调用hasOwnProperty()方法即可得到布尔类型的判断结果:
// 检查'A'是否为CapitalLetters的键,返回true
const isExist = CapitalLetters.hasOwnProperty('A')
  • 结合HTML检测的使用示例:你可以直接读取input的value值,再判断该值是否为对象的键:
const inputValue = document.getElementById('fname').value
if (CapitalLetters.hasOwnProperty(inputValue)) {
  // 匹配到对应键后的业务逻辑
  console.log('匹配到的键名:', inputValue)
}
  • 你示例中的if判断存在逻辑错误:原写法answers2 === CapitalLetters['A'] || CapitalLetters['S']并不会把answers2和后面所有值比较,而是会直接判断CapitalLetters['S']是否为真值,优化写法如下:
// 把所有要匹配的项存入数组,调用includes方法判断
const matchList = [CapitalLetters['A'], CapitalLetters['S'], LowerLetters['d'], NumberLetters[4]]
if (matchList.includes(answers2)) {
  // 匹配成功后的逻辑
}

以上所有方案均为JS原生语法支持,不需要额外创建大量自定义对象,也无需编写冗余代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:00:03