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

如何在JavaScript中提取数组对象的字段名?

提取数组对象中所有唯一字段名的解决方案

针对你的需求,要从results.data数组的所有对象中提取出所有唯一的字段名,可以通过遍历收集所有键 + 去重的方式实现,以下是两种实用的JavaScript方案:

方案一:forEach遍历 + Set去重

先遍历数组中的每个对象,提取它们的键名并添加到Set中(Set会自动处理重复值),最后将Set转为数组即可:

// 获取目标数组
const data = results.data;
// 初始化Set用于存储唯一字段
const fieldSet = new Set();

// 遍历数组里的每个对象
data.forEach(item => {
  // 提取当前对象的所有键名,逐个加入Set
  Object.keys(item).forEach(key => fieldSet.add(key));
});

// 将Set转为数组,得到最终的字段列表
const uniqueFields = Array.from(fieldSet);
// 输出结果: ['nClients', 'name', 'roll_no', 'branch']

方案二:reduce简化写法

用Array.reduce替代forEach,代码更简洁,逻辑和方案一一致:

const data = results.data;
const uniqueFields = Array.from(
  data.reduce((acc, item) => {
    Object.keys(item).forEach(key => acc.add(key));
    return acc;
  }, new Set())
);

注意事项

  • 如果results.data是空数组,最终会得到一个空数组[],可以根据需求添加判断逻辑;
  • 上述方案仅提取对象的顶层字段,如果你的对象存在嵌套结构,需要额外编写递归逻辑来提取嵌套字段;
  • Set的遍历顺序是元素插入的顺序,所以最终数组的顺序会和字段第一次出现的顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:00:59