You need to enable JavaScript to run this app. 使用.map与.filter基于movieId合并Movies与Comments数组的正确方法
优惠活动
大模型
产品
解决方案
定价
更多

使用.map与.filter基于movieId合并Movies与Comments数组的正确方法

电影与评论数组合并实现问题

业务背景

两次数据库查询分别获取Movies、Comments两个数组,需要基于movieId字段完成关联合并后返回客户端。

输入输出结构定义

  • 源数据:Movies数组结构
[
    {
        "movieId": "0DD20C53-FF5C-EB11-8140-707781834352"
    },
    {
        "movieId": "01C14AF4-3E37-EB11-8138-778184434310"
    },
]
  • 源数据:Comments数组结构
[
    {
        "commentId": "1",
        "movieId": "0DD20C53-FF5C-EB11-8140-707781834352",
        "content": "thanks"
    },
]
  • 期望合并结果
[
  {
    movieId: "0DD20C53-FF5C-EB11-8140-707781834352",
    comments: [
      {
        commentId: "1",
        movieId: "0DD20C53-FF5C-EB11-8140-707781834352",
        content: "thanks",
      },
    ],
  },
  {
    movieId: "01C14AF4-3E37-EB11-8138-778184434310",
    comments: [],
  },
]

现有实现的异常

当前编写的代码运行后,评论会被错误添加到所有电影对象中。经排查定位,问题出在movieId的匹配逻辑上,对应代码如下:

let result = movies.map((movie) => ({
      ...movie,
      comments: comments.filter((comment) => {
        comment.movieId = movie.movieId;
      }),
    }));

待解决需求

  • 掌握该场景下.map与.filter的正确使用方法
  • 获取该数组合并场景下性能更优的实现方案

内容的提问来源于stack exchange,提问作者Monkey D. Teach

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 15:15:08