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

如何获取对象数组中值为true的键名?

解决对象数组中获取值为true的键名问题

你的代码问题出在data是对象数组,直接对数组调用Object.keys()拿到的是数组的索引(比如["0"]),而非目标对象的键名,所以筛选逻辑完全不对。

修正后的代码如下:

const data = [{superadmin: true, admin: false, user: false}];
// 先取出数组中的第一个对象,再筛选其值为true的键
const keys = Object.keys(data[0]).filter(key => data[0][key]);
console.log(keys); // 输出 ["superadmin"]

如果数组包含多个对象,需要批量提取每个对象中值为true的键,可以用map遍历处理:

const data = [
  {superadmin: true, admin: false, user: false},
  {admin: true, superadmin: false, user: false}
];
const allTrueKeys = data.map(item => Object.keys(item).filter(key => item[key]));
console.log(allTrueKeys); // 输出 [["superadmin"], ["admin"]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:15:29