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

如何在JavaScript中循环对象?从指定fields对象提取键名数组

在JavaScript中提取对象键名组成数组的方法

嘿,这需求太常见啦!针对你给出的对象结构,我给你分享几种简单好用的实现方式,轻松得到你想要的res = ['summary','issuetype','description']。

首先先明确我们的目标对象(把你给的片段补全成可直接操作的完整对象):

const targetObj = {
  "fields": { 
    "summary": { "required": true }, 
    "issuetype": { "required": true }, 
    "description": { "required": false } 
  }
};

方法一:最简洁的Object.keys()(首推!)

Object.keys()是JavaScript专门用来获取对象自身可枚举属性键名数组的方法,完全贴合你的需求,一行代码就能搞定:

const res = Object.keys(targetObj.fields);
console.log(res); // 输出:['summary','issuetype','description']

这个方法高效又直观,不需要额外的循环操作,直接拿到你要的结果。

方法二:for...in循环(适合需要额外处理的场景)

如果你需要在遍历过程中对每个键做额外判断或处理(比如过滤某些特定键),可以用for...in循环,记得加上hasOwnProperty判断——这能避免遍历到原型链上的继承属性,让代码更安全:

const res = [];
for (const key in targetObj.fields) {
  if (targetObj.fields.hasOwnProperty(key)) {
    res.push(key);
  }
}
console.log(res); // 同样得到目标数组

方法三:ES6+的Object.entries()结合map

这个方法稍显迂回,但如果你同时需要处理键和值的话会很实用:通过Object.entries()把键值对转成二维数组,再用map提取出每个数组的第一个元素(也就是键名):

const res = Object.entries(targetObj.fields).map(([key]) => key);
console.log(res); // 输出目标数组

总结一下,如果你只是单纯要提取键名数组,方法一的Object.keys()是最优选择,简洁高效一步到位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:42:31