新闻中心
J*aScript:根据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);代码解释:
movies.forEach((movie) => { ... }): 使用 forEach 方法遍历 movies 数组,对每个 movie 对象执行回调函数。
movie.genres = movie.genre_ids.map(...): 为当前 movie 对象创建一个新的 genres 属性。这个属性的值是通过 map 方法将 movie.genre_ids 数组中的每个 ID 转换为对应的 genre 名称而得到的。
青泥AI
青泥学术AI写作辅助平台
360
查看详情
(id) => genres.find((genre) => id === genre.id).name: map 方法的回调函数。它接受一个 id 作为参数,并使用 genres.find() 方法在 genres 数组中查找 id 与 genre.id 相等的对象。找到后,返回该对象的 name 属性。
delete movie.genre_ids: 可选步骤。删除每个 movie 对象中原有的 genre_ids 属性。如果需要保留 genre_ids 属性,可以省略此行代码。
输出结果:
执行上述代码后,movies 数组将变为:
[
{
"title": "Suzume",
"genre
s": [
"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动漫网正版动漫入口网址


2025-10-08
浏览次数:次
返回列表
s": [
"Animation",
"Drama",
"Adventure",
"Fantasy"
]
}
]