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

JavaScript中未知对象数组键名时,如何提取全部键值对?

问题原因

你之前直接对数组本身调用Object.keys(),数组的可枚举属性就是各元素的索引,所以只会返回['0','1','2'],拿不到内部嵌套对象的键值。

实现方案

下面提供3种常用的实现方式,按需选择即可:

  • 方案1:提取所有键值对为二维数组
    用flatMap+Object.entries直接拉平所有结果:

    let arr = [{'John': 0}, {'Doe': 50}, {'Marry': 100}]
    const allPairs = arr.flatMap(item => Object.entries(item))
    // 输出结果:[['John', 0], ['Doe', 50], ['Marry', 100]]
    
  • 方案2:把所有键值对合并为单个对象
    用展开运算符+Object.assign合并所有数组元素的属性:

    const mergedObj = Object.assign({}, ...arr)
    // 输出结果:{ John: 0, Doe: 50, Marry: 100 }
    
  • 方案3:遍历逐个处理每个键值对
    适合需要对每个键值做单独逻辑处理的场景:

    arr.forEach(item => {
      for(const [key, value] of Object.entries(item)) {
        // 此处可自定义处理逻辑,示例为打印
        console.log(`键名:${key},对应值:${value}`)
      }
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:06:00