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

在JavaScript/React中匹配对象数组state值并追加属性的实现

需求说明

需要将第一个对象数组(ChartOptions)中的title和color键值对,当其中的两位州代码键与第二个对象数组(ChartSummary)的state值匹配时,追加到第二个数组的对应对象中。


输入示例

第一个对象数组(ChartOptions)

{
  "ChartOptions": [
    {
      "title": {
        "CA": "California",
        "GA": "Georgia",
        "KY": "Kentucky",
        "MN": "Minnesota",
        "MO": "Missouri"
      },
      "color": {
        "CA": "#6A5ACD",
        "GA": "#FF0000",
        "KY": "#0000FF",
        "MN": "#FFA500",
        "MO": "#3CB371"
      }
    }
  ]
}

第二个对象数组(ChartSummary)

{
  "ChartSummary": [
    {
      "state": "CA",
      "total": 812
    },
    {
      "state": "GA",
      "total": 240
    },
    {
      "state": "KY",
      "total": 167
    },
    {
      "state": "MN",
      "total": 578
    },
    {
      "state": "MO",
      "total": 75
    }
  ]
}

期望结果

{
  "ChartSummary": [
    {
      "state": "CA",
      "total": 812,
      "title": "California",
      "color": "#6A5ACD"
    },
    {
      "state": "GA",
      "total": 240,
      "title": "Georgia",
      "color": "#FF0000"
    },
    {
      "state": "KY",
      "total": 167,
      "title": "Kentucky",
      "color": "#0000FF"
    },
    {
      "state": "MN",
      "total": 578,
      "title": "Minnesota",
      "color": "#FFA500"
    },
    {
      "state": "MO",
      "total": 75,
      "title": "Missouri",
      "color": "#3CB371"
    }
  ]
}

实现方案(JavaScript)

通过遍历ChartSummary数组,结合ChartOptions中的映射数据,为每个对象添加对应的title和color属性:

// 输入的两个数据源
const chartOptionsData = {
  "ChartOptions": [
    {
      "title": { "CA": "California", "GA": "Georgia", "KY": "Kentucky", "MN": "Minnesota", "MO": "Missouri" },
      "color": { "CA": "#6A5ACD", "GA": "#FF0000", "KY": "#0000FF", "MN": "#FFA500", "MO": "#3CB371" }
    }
  ]
};

const chartSummaryData = {
  "ChartSummary": [
    { "state": "CA", "total": 812 },
    { "state": "GA", "total": 240 },
    { "state": "KY", "total": 167 },
    { "state": "MN", "total": 578 },
    { "state": "MO", "total": 75 }
  ]
};

// 提取title和color的映射表
const { title, color } = chartOptionsData.ChartOptions[0];

// 处理数组并生成结果
const result = {
  ChartSummary: chartSummaryData.ChartSummary.map(item => ({
    ...item,
    title: title[item.state],
    color: color[item.state]
  }))
};

console.log(JSON.stringify(result, null, 2));

这段代码利用map方法遍历目标数组,通过扩展运算符保留对象原有属性,同时根据state值从映射表中取出对应字段,完成属性追加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:02:20