
本文介绍了如何使用 JavaScript 遍历包含 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);
代码解释:
立即学习“Java免费学习笔记(深入)”;
movies.forEach((movie) => { … }): 使用 forEach 方法遍历 movies 数组,对每个 movie 对象执行回调函数。
movie.genres = movie.genre_ids.map(…): 为当前 movie 对象创建一个新的 genres 属性。这个属性的值是通过 map 方法将 movie.genre_ids 数组中的每个 ID 转换为对应的 genre 名称而得到的。
(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", "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;});
总结
本文提供了一种使用 JavaScript 根据 ID 匹配并为数组对象添加新属性的方法。通过使用 forEach、map 和 find 方法,我们可以轻松地遍历数组,查找匹配项,并根据匹配结果创建新的属性。这种方法可以应用于各种场景,例如将 ID 转换为名称、将代码转换为描述等等。记住,根据实际需求调整代码,并添加必要的错误处理,以确保代码的健壮性和可靠性。
以上就是JavaScript:根据ID匹配并为数组对象添加新属性的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1527599.html
微信扫一扫
支付宝扫一扫