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

TypeScript入门:编写提取电影数组指定字段的精简函数

如何在TypeScript中精简Movie数组的字段?

嘿,作为TypeScript新手,这个需求其实非常常见,咱们轻松搞定它就行~

首先,先确认你的原始类型定义没问题:

type Movie = {
  id: number;
  title: string;
  url: string;
  rating: number;
};

接下来,要实现一个接收Movie[]数组、返回仅包含id和title字段的数组的函数,用数组的map方法就最合适了——它能遍历原数组的每个元素,帮你生成新的精简对象。

完整实现代码

type Movie = {
  id: number;
  title: string;
  url: string;
  rating: number;
};

// 可选:定义精简后的类型,让代码更清晰
type SimplifiedMovie = {
  id: number;
  title: string;
};

function simplifyMovies(movies: Movie[]): SimplifiedMovie[] {
  return movies.map(movie => ({
    id: movie.id,
    title: movie.title
  }));
}

// 示例输入
const inputMovies: Movie[] = [
  { id: 1, title: "Wonder Woman", url: "www", rating: 5 },
  { id: 2, title: "Super Man", url: "www2", rating: 7 }
];

// 调用函数得到结果
const outputMovies = simplifyMovies(inputMovies);
console.log(outputMovies);
// 输出:[{id:1, title:"Wonder Woman"},{id:2, title:"Super Man"}]

简单解释一下:

  • map方法会遍历原数组的每一个Movie对象,对每个对象只提取id和title字段,组成新对象。
  • TypeScript其实可以自动推断返回的数组类型,但手动定义SimplifiedMovie类型能让代码的可读性更高,也能在后续维护时更明确返回值的结构。
  • 如果你不想单独定义SimplifiedMovie,也可以直接让函数返回Array<{ id: number; title: string }>,效果是一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:10:24