JavaScript中如何仅通过Key获取Object对象的对应属性值
实现方案
直接使用JavaScript对象的方括号属性访问语法,即可通过动态key拿到对应的布尔值,实现代码如下:
// 原存储清单的对象 const colors = { green: true, blue: true, red: true, orange: false } // 完成后的isUsed函数 const isUsed = (color) => { // 方括号支持传入变量作为key取值,??false用于处理传入不存在的颜色时默认返回false return colors[color] ?? false; }
效果验证
运行测试代码可得到预期结果:
console.log(isUsed("green")); // 输出 true console.log(isUsed("orange")); // 输出 false console.log(isUsed("purple")); // 传入对象中不存在的颜色,默认返回false
兼容优化
- 如果需要兼容不支持ES2020空值合并运算符的低版本环境,可以改用
hasOwnProperty判断key是否存在再取值:
const isUsed = (color) => { return colors.hasOwnProperty(color) ? colors[color] : false; }
- 如果不想让函数依赖全局的
colors对象,可以把colors作为参数传入:
const isUsed = (color, colors) => { return colors.hasOwnProperty(color) ? colors[color] : false; } // 调用示例 console.log(isUsed("green", colors));
内容的提问来源于stack exchange,提问作者G Josh
相关产品推荐
相关产品推荐

