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

TypeScript中如何将普通数组转换为带自定义键的对象数组

实现方案

该需求属于标准的数组元素映射场景,使用Array.prototype.map遍历转换是性能最优、写法最简洁的实现方式,配合TypeScript类型定义可以保证类型安全。

第一步:定义输出数据类型

提前声明对象结构的接口,避免后续属性拼写、类型赋值错误:

interface PersonItem {
  name: string;
  initial: string;
  year: string;
}

第二步:执行转换

const originalArray = ["Tom", "Jack", "Rose"];
const FIXED_YEAR = "2021"; // 固定值抽离为常量方便后续统一修改

const convertedArray: PersonItem[] = originalArray.map(name => ({
  name,
  // 取首字符转小写,加可选链兜底避免空字符串运行时报错
  initial: name?.[0]?.toLowerCase() ?? "",
  year: FIXED_YEAR
}));

可复用封装

如果需要频繁使用该转换逻辑,可以封装为通用工具函数,支持自定义年份:

function convertNameToPerson(arr: string[], year: string = "2021"): PersonItem[] {
  return arr.map(name => ({
    name,
    initial: name?.[0]?.toLowerCase() ?? "",
    year
  }))
}

// 调用示例
const result = convertNameToPerson(originalArray);
// 自定义年份调用
const result2024 = convertNameToPerson(originalArray, "2024");

该实现的时间复杂度为O(n),仅遍历一次原数组即可得到结果,无额外性能开销。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:02