🙆

[TypeScript]オブジェクトの配列をオブジェクト内の特定のプロパティに着目して重複排除する

2023/11/16に公開1
// idとversionで複合主キー
type Post = {
  id: string;
  version: string;
  content: string;
};

// idの重複をなくす
// 同一idのものはversionが大きいものを返す
const getUniquePosts = (posts: Post[]): Post[] => {
  const uniquePostsMap = new Map<string, Post>();

  posts.forEach((post) => {
    const existingPost = uniquePostsMap.get(post.id);
    if (!existingPost || existingPost.version < post.version) {
      uniquePostsMap.set(post.id, post);
    }
  });

  return Array.from(uniquePostsMap.values());
};

Discussion