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

如何在TypeScript与GraphQL环境下为数组中每个元素添加name属性

解决方法:用map转换数组格式

当然可行呀!你现在的问题出在使用了forEach——这个方法只是遍历数组执行回调,不会返回新数组,所以你当前的names变量其实是undefined,自然没法得到想要的对象数组。

要实现字符串数组到{name: string}对象数组的转换,你应该用数组的map方法,它专门用来处理这类“把每个元素转换成新格式并生成新数组”的场景。

修正后的代码

const mydata = response.data.myTypes;
// 用map遍历每个元素,返回带name属性的对象
const names = mydata.map((element: string) => ({ name: element }));

简单解释

  • map会遍历mydata里的每一个字符串元素,对每个元素执行回调函数
  • 回调函数里我们直接返回一个对象{ name: element },把当前元素赋值给name属性
  • 最后map会把所有回调返回的对象收集起来,形成一个新数组赋值给names,这就是你要的格式啦

另外,建议把element: any改成element: string,这样TypeScript能帮你做类型检查,避免后续出现不必要的类型错误~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:57:34