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

如何获取对象数组中第一个对象的属性名?

问题:提取数组首个对象的属性名

我有如下结构的对象数组,需要从中仅获取第一个对象的属性名(而非属性值),预期结果应为["Name", "Account", "Status"]。但我写的代码得到的结果包含索引0,不符合预期,求指导实现预期效果:

tempVar = [
      {
        "Name"    : "A1",
        "Account" : "Dom",
        "Status"  : "A"
      },
      {
        "Name"    : "A5",
        "IntAccount" : "Int",
        "Status"  : "A"
      },
      {
        "Name"    : "A2",
        "LclAccount" : "Lcl",
        "Status"  : "A"
      },
      {
        "Name"    : "A4",
        "UnknownAccount" : "UA",
        "Status"  : "A"
      }
    ];
let propNames: Array<any> = [];
tempVar= tempVar.splice(0,1);
for (let el of tempVar) 
{
  propNames.push(Object.keys(el))
}
console.log(propNames);
解决方案

你的代码问题出在:

  • splice(0,1)会返回一个包含被删除元素的数组,执行后tempVar变成了[{Name: "A1", ...}]这样的单元素数组
  • 后续用for...of遍历这个数组,把Object.keys(el)的结果(本身就是数组)push到propNames里,最终得到的是二维数组[["Name", "Account", "Status"]],看起来就像包含了索引0

直接简化代码即可,不需要修改原数组,也不需要循环:

const tempVar = [
      {
        "Name"    : "A1",
        "Account" : "Dom",
        "Status"  : "A"
      },
      // 其他对象...
    ];
// 直接取数组第一个对象,再获取它的属性名
const propNames = Object.keys(tempVar[0]);
console.log(propNames); // 输出 ["Name", "Account", "Status"]

如果担心数组为空导致报错,可以加个判断:

const propNames = tempVar.length > 0 ? Object.keys(tempVar[0]) : [];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:54:11