新闻中心

J*aScript:根据ID匹配并为数组对象添加新属性

2025-10-08
浏览次数:
返回列表

javascript:根据id匹配并为数组对象添加新属性

本文介绍了如何使用 J*aScript 遍历包含 genre_ids 数组的电影对象数组,并根据 genres 数组中的 ID 匹配结果,为每个电影对象添加一个新的 genres 属性,该属性包含匹配到的 genre 名称数组。同时,可以选择删除原有的 genre_ids 属性。

实现方法

假设我们有两个数组:movies 和 genres。movies 数组中的每个对象都有一个 genre_ids 属性,它是一个包含数字 ID 的数组。genres 数组是一个包含对象,每个对象都有 id 和 name 属性的数组。我们的目标是遍历 movies 数组,并为每个电影对象添加一个 genres 属性,该属性是一个包含匹配到的 genre 名称的数组。

以下代码展示了如何实现这个目标:

const genres =  [
    { id: 28, name: 'Action' },
    { id: 12, name: 'Adventure' },
    { id: 16, name: 'Animation' },
    { id: 35, name: 'Comedy' },
    { id: 80, name: 'Crime' },
    { id: 99, name: 'Documentary' },
    { id: 18, name: 'Drama' },
    { id: 10751, name: 'Family' },
    { id: 14, name: 'Fantasy' },
]
const movies = [
 {
    genre_ids: [ 16, 18, 12, 14 ],
    title: 'Suzume',
  }
]

movies.forEach((movie) => {
  movie.genres = movie.genre_ids.map(
    (id) => genres.find((genre) => id === genre.id).name
  );
  delete movie.genre_ids; // 可选:删除 genre_ids 属性
});

console.log(movies);

代码解释:

  1. movies.forEach((movie) => { ... }): 使用 forEach 方法遍历 movies 数组,对每个 movie 对象执行回调函数。

  2. movie.genres = movie.genre_ids.map(...): 为当前 movie 对象创建一个新的 genres 属性。这个属性的值是通过 map 方法将 movie.genre_ids 数组中的每个 ID 转换为对应的 genre 名称而得到的。

    青泥AI 青泥AI

    青泥学术AI写作辅助平台

    青泥AI 360 查看详情 青泥AI
  3. (id) => genres.find((genre) => id === genre.id).name: map 方法的回调函数。它接受一个 id 作为参数,并使用 genres.find() 方法在 genres 数组中查找 id 与 genre.id 相等的对象。找到后,返回该对象的 name 属性。

  4. delete movie.genre_ids: 可选步骤。删除每个 movie 对象中原有的 genre_ids 属性。如果需要保留 genre_ids 属性,可以省略此行代码。

输出结果:

执行上述代码后,movies 数组将变为:

[
  {
    "title": "Suzume",
    "genres": [
      "Animation",
      "Drama",
      "Adventure",
      "Fantasy"
    ]
  }
]

注意事项

  • 确保 genres 数组中的每个对象都包含 id 和 name 属性,且 id 属性的值与 movies 数组中 genre_ids 数组中的值类型一致(都是数字)。
  • 如果 genres 数组中没有找到与 genre_ids 中 ID 匹配的项,genres.find() 方法将返回 undefined。在这种情况下,上面的代码会报错。为了避免这种情况,可以添加一个检查,确保 genres.find() 方法返回的值不是 undefined。例如:
movies.forEach((movie) => {
  movie.genres = movie.genre_ids.map(
    (id) => {
      const genre = genres.find((genre) => id === genre.id);
      return genre ? genre.name : null; // 或者其他默认值,比如 'Unknown'
    }
  );
  delete movie.genre_ids;
});

总结

本文提供了一种使用 J*aScript 根据 ID 匹配并为数组对象添加新属性的方法。通过使用 forEach、map 和 find 方法,我们可以轻松地遍历数组,查找匹配项,并根据匹配结果创建新的属性。这种方法可以应用于各种场景,例如将 ID 转换为名称、将代码转换为描述等等。记住,根据实际需求调整代码,并添加必要的错误处理,以确保代码的健壮性和可靠性。

以上就是J*aScript:根据ID匹配并为数组对象添加新属性的详细内容,更多请关注其它相关文章!


# java  # 回调函数  # 组中  # 回调  # 并为  # 遍历  # 是一个  # 转换为  # 如何使用  # javascript  # 速达seo  # 搜索推广的营销通靠谱吗  # 浙江seo排名怎样收费  # 数字6营销推广平台  # 医疗网站建设建站系统  # 广州网站优化百度排名  # 南充关键词排名怎么代理  # 百度推广增值营销  # 西平抖音付费营销推广公司  # 丹东抖音seo专业团队  # 可以使用  # 如何实现  # 都有 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在FastAPI中利用lifespan与依赖注入高效管理Redis连接池  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  夸克浏览器网页版最新地址 夸克浏览器官方入口合集  优化大型XML文件解析:基于Python流式处理的内存高效方案  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  生成rdflib自定义SPARQL函数:参数匹配与实践指南  J*a应用程序首次运行自动创建文件与目录的最佳实践  期待已久:小米17 Ultra、小米首款NAS本月登场  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  Python多线程中正确使用sigwait处理SIGALRM信号  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  在Go Martini框架中高效服务动态生成图像的实践指南  Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法  J*a应用集成GitHub CLI与API认证指南  Animex动漫社网入口地址 Animex动漫社网正版在线入口  使用Python高效删除Word宏并转换DOCM为DOCX格式  微博网页版官方账号登录 微博网页版内容浏览使用指南  J*aScript:在map操作中高效处理空数组  Lar*el 8 多关键词数据库搜索优化实践  Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注  快手网页版在线登录 快手网页版官网入口快速访问  sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤  C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图  Spring Boot内嵌服务器与J*a EE全栈特性:选择与部署策略  Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】  Lar*el头像管理:图片缩放与旧文件删除的最佳实践  邮政快递单号查询入口 邮政快递物流信息在线查询入口  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  html5 app怎么运行环境_配html5 app运行环境【教程】  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  mc.js官网登录入口 mc.js官方登录入口最新版  Golang指针如何与map组合使用_Golang map指针组合实践  12306几点到几点不能订票? | 官方最新系统维护时间全解析  优化Django表单:提交验证失败后保留用户输入  Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】  CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  聚水潭ERP登录页面入口 聚水潭ERP官网登录界面  MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏  C++如何生成随机数_C++ random库使用方法与范围设置  漫画星球免费下拉式入口 漫画星球免费漫画在线阅读网站  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  58动漫网在线官方网 58动漫网正版动漫入口网址 

搜索