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

如何在JavaScript中将带数字键的多对象结构转换为对象数组?

JavaScript将指定对象转为目标数组的方法

原始对象结构:

{
    "0": {
        "category": "Private",
        "price": "5"
    },
    "1": {
        "category": "VIP",
        "price": "5"
    },
    "2": {
        "category": "Premium",
        "price": "5"
    }
}

期望得到的数组:

const pricing = [
  { category: "Private", price: 5 },
  { category: "VIP", price: 5 },
  { category: "Premium", price: 5 },
]

方法一:使用Object.values() + map(推荐)

这是ES6+最简洁的实现方式,先提取对象的所有值组成数组,再遍历转换price的类型:

const originalObj = { /* 你的原始对象 */ };

const pricing = Object.values(originalObj).map(item => ({
  ...item,
  price: Number(item.price)
}));
  • Object.values(originalObj)会按键的顺序提取所有值,生成初始数组
  • map遍历每个元素,展开原对象的属性,同时将price从字符串转为数字

方法二:兼容旧环境的Object.keys() + map

如果需要兼容不支持Object.values()的旧环境,可以先获取所有键,再逐个取值转换:

const originalObj = { /* 你的原始对象 */ };

const pricing = Object.keys(originalObj).map(key => ({
  ...originalObj[key],
  price: Number(originalObj[key].price)
}));

方法三:使用Array.from()

Array.from()也可以实现,结合对象值的数组和映射函数:

const originalObj = { /* 你的原始对象 */ };

const pricing = Array.from(Object.values(originalObj), item => ({
  ...item,
  price: Number(item.price)
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:37:07