如何从JavaScript对象中获取键名?附具体代码场景示例
解决方案:避免硬编码对象键名
方法1:用变量存储键名字符串
最直接的方式是把目标键名存入变量,通过方括号语法访问对象属性,彻底替代硬编码的字符串:
const jonas = { firstName: 'Jonas', lastName: 'Schmedtmann', age: 2037 - 1991, job: 'teacher', friends: ['Michael', 'Peter', 'Steven'] }; // 将键名存入变量,避免硬编码 const friendKey = 'friends'; console.log(`${jonas.firstName} has ${jonas[friendKey].length} ${friendKey}, and his best friend is ${jonas[friendKey][0]}.`);
后续如果键名需要修改(比如改成buddies),只需要更新friendKey变量的值即可,不用在代码里逐个替换硬编码的字符串,维护性更强。
方法2:动态识别目标键名
如果不确定键名,但知道目标属性的特征(比如值是数组),可以通过Object.keys()结合数组方法动态定位对应的键:
const jonas = { firstName: 'Jonas', lastName: 'Schmedtmann', age: 2037 - 1991, job: 'teacher', friends: ['Michael', 'Peter', 'Steven'] }; // 动态筛选出值为数组的键(这里匹配到friends) const friendKey = Object.keys(jonas).find(key => Array.isArray(jonas[key])); console.log(`${jonas.firstName} has ${jonas[friendKey].length} ${friendKey}, and his best friend is ${jonas[friendKey][0]}.`);
这种方式完全脱离了对键名的硬编码,适合需要根据属性特征动态定位键的场景。
内容的提问来源于stack exchange,提问作者Dhanalaxmi Shettiyar
相关产品推荐
相关产品推荐

