🙆
[TypeScript]オブジェクトの配列をオブジェクト内の特定のプロパティに着目して重複排除する
// 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
汎用的な関数にしてみました。
JS_オブジェクト配列の重複削除(ユニーク)に条件指定して制御できる関数を作ってみた