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

JS/TS中如何将Role数组映射转换为Option类型数组?

类型与数据定义

预先定义的类型、接口和测试数据如下:

  • Option类型配置
type Option = {
  value: any,
  label: any
}
  • Role接口定义
export interface Role {
  id: number
  name: string
}
  • Role类型测试数组
    原代码中数组定义存在语法错误,类型标注后应使用等号赋值而非冒号,修正后写法:
const roles: Role[] = [
  {id:1,name:'name1'},
  {id:2,name:'name2'},
  {id:3,name:'name3'}
]
转换实现

需求是将Role[]结构的数组转换为Option[]结构,对应Java中的实现逻辑为:

roles.stream().map(role->new Option(role.id,role.name)).collect(collectors.toList());

在JavaScript/TypeScript中可以直接调用数组原生的map方法完成转换,不需要额外的收集步骤,map执行后会直接返回字段映射完成的新数组,写法更简洁:

const options: Option[] = roles.map(role => ({
  value: role.id,
  label: role.name
}))

如果运行环境不支持ES6箭头函数语法,也可以使用普通函数写法:

var options = roles.map(function (role) {
  return {
    value: role.id,
    label: role.name
  }
})

最终得到的options变量就是符合Option[]类型要求的结果,和Java代码执行后的输出结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:09:15