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

如何从JavaScript对象中提取值为true的键

获取对象中值为true的键的几种方法

嘿,这有几个实用的JavaScript方法可以帮你从给定的对象里筛选出值为true的键,直接看代码和解释就懂了:

方法1:Object.keys() 结合 filter()

这是最简洁常用的方式,先拿到对象所有的键,再过滤出对应值为true的:

const trueOptions = { 
  trueOption1 : true, 
  trueOption2 : true, 
  trueOption3 : false, 
  trueOption4 : false, 
  trueOption5 : true 
};

const trueKeys = Object.keys(trueOptions).filter(key => trueOptions[key] === true);
console.log(trueKeys); // 输出: ["trueOption1", "trueOption2", "trueOption5"]
  • Object.keys(trueOptions) 返回对象所有可枚举的键组成的数组
  • filter() 遍历每个键,检查对应的值是否严格等于true,留下符合条件的键

方法2:Object.entries() 链式处理

如果想更直观地同时拿到键和值,可以用Object.entries()先转成键值对数组,再筛选提取:

const trueKeys2 = Object.entries(trueOptions)
  .filter(([key, value]) => value === true)
  .map(([key]) => key);
console.log(trueKeys2); // 同样得到目标数组
  • Object.entries() 把对象转换成[key, value]格式的数组
  • 先过滤出值为true的键值对,再用map()提取出其中的键

方法3:for...in 循环(兼容旧环境)

如果需要兼容一些不支持ES6方法的旧浏览器,用传统的循环也能搞定:

const trueKeys3 = [];
for (const key in trueOptions) {
  // 加上hasOwnProperty检查,避免拿到原型链上的属性
  if (trueOptions.hasOwnProperty(key) && trueOptions[key] === true) {
    trueKeys3.push(key);
  }
}
console.log(trueKeys3); // 结果一致

小提示

如果你的对象里所有值都是布尔类型,也可以把条件简化成trueOptions[key],但我更推荐写=== true,这样能避免隐式类型转换带来的意外(比如如果某个值是1或者"true",也会被误判)。

内容的提问来源于stack exchange,提问作者Victor Garcia Civera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:32:08