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

如何从含动态属性对象的数组中提取属性值数组?

实现思路与代码示例

这里提供几种JavaScript的实现方式,针对每个子对象仅含单个属性的场景:

  • 方法一:Array.map() 结合 Object.values()
    利用map遍历原数组,每个对象通过Object.values()提取所有值组成的数组,由于每个对象只有一个属性,直接取数组第一个元素即可:

    const originalArr = [{a:23},{b:23},{r:2323},{e:99}];
    const newArr = originalArr.map(obj => Object.values(obj)[0]);
    console.log(newArr); // 输出: [23,23,2323,99]
    
  • 方法二:Array.map() 结合 Object.keys()
    先通过Object.keys()获取对象的属性名,再通过属性名取值:

    const originalArr = [{a:23},{b:23},{r:2323},{e:99}];
    const newArr = originalArr.map(obj => obj[Object.keys(obj)[0]]);
    console.log(newArr); // 输出: [23,23,2323,99]
    
  • 方法三:传统for循环(兼容旧环境)
    如果需要兼容不支持ES6语法的环境,可以用两层循环实现:

    const originalArr = [{a:23},{b:23},{r:2323},{e:99}];
    const newArr = [];
    for (let i = 0; i < originalArr.length; i++) {
      const currentObj = originalArr[i];
      for (const key in currentObj) {
        if (currentObj.hasOwnProperty(key)) {
          newArr.push(currentObj[key]);
          break; // 每个对象仅一个属性,取到值后跳出内层循环
        }
      }
    }
    console.log(newArr); // 输出: [23,23,2323,99]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:57:15