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

如何在React Native中格式化响应数据以填充select下拉选择器

问题场景

我需要将接口响应中的Terminals字段条目,格式化为包含{ key, label }结构的数组,用来填充下拉选择组件的选项,当前获取到的响应数据结构如下:

{
    "Status": "SUCCESS",
    "Terminals": {
      "0": {
        "name": "GENESIS-演示终端",
        "term_id": "GENESIS",
      },
      "1": {
        "name": "GENESIS-演示终端",
        "term_id": "GENESIS",
      },
      "name": "",
      "term_id": "",
    },
    "TotalCount": 1
}
处理方案

注意返回的Terminals是对象类型而非数组,且附带了两个无效的空值属性name、term_id,我们仅需过滤出数字键对应的有效条目做转换即可,以下是JavaScript实现代码:

const response = // 此处填入接口返回的完整响应数据
const selectOptions = Object.entries(response.Terminals)
  // 过滤非数字键的无效属性,可根据业务需求调整过滤规则
  .filter(([key, value]) => !isNaN(Number(key)) && value.term_id && value.name)
  // 转换为下拉组件要求的结构,key取终端ID、label取终端名称,可按需调整映射规则
  .map(([_, terminalItem]) => ({
    key: terminalItem.term_id,
    label: terminalItem.name
  }))
补充说明
  • 如果需要添加默认空选项,可在生成的selectOptions数组头部插入{ key: '', label: '请选择终端' }
  • 如果业务允许空值选项,删除过滤逻辑里的value.term_id && value.name条件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:00