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

如何结合映射对象与对象数组匹配键值生成带标签的表格?

问题描述

有如下映射对象:

const objectForMapping = {
  "001": "Street",
  "002": "Name",
  "003": "Town"
};

以及包含对象的数组:

const arrayOfValues = [
  {
    "questionCode": "002",
    "value": "Thomas"
  },
  {
    "questionCode": "001",
    "value": "First"
  },
  {
    "questionCode": "003",
    "value": "Mexico"
  }
];

需要生成列表项,判断arrayOfValues中元素的questionCode是否存在于objectForMapping的键中,将对应键的值作为标签展示,预期效果:

  • Name: Thomas
  • Street: First
  • Town: Mexico

但当前代码中label显示的是questionCode而非正确标签,代码如下:

{arrayOfValues.map((element, key) => (
  <Line label={element.questionCode} description={element.value} key={key}/> 
))}
修正方案

直接通过映射对象获取对应标签,同时添加容错处理:

{arrayOfValues.map((element) => {
  // 获取对应标签,不存在则使用原questionCode作为 fallback
  const label = objectForMapping[element.questionCode] || element.questionCode;
  return (
    <Line 
      label={label} 
      description={element.value} 
      key={element.questionCode} // 用唯一的questionCode作为key,比索引更可靠
    /> 
  )
})}
关键说明
  • 利用对象键访问语法objectForMapping[element.questionCode],直接从映射对象中取出对应标签
  • || element.questionCode做容错处理:如果某个questionCode不在映射对象中,会显示原编码,避免出现undefined或空白
  • key推荐使用唯一标识(如element.questionCode),而非数组索引,避免组件渲染异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:35:24