如何通过循环根据剧集数自动输出对应集数编号?
自动输出剧集各季集数编号的实现方案
我正在学习循环语句,想要编写程序读取给定的剧集数据对象,自动根据各季的剧集数输出从1到该数值的集数编号(如第二季22集则输出1-22)。已知手动指定数值的for循环写法:for(i=1; i<=22; i++){ console.log(i); },但不知如何结合以下数据对象实现该功能:
const myFavSeries = { title: `Scrubs`, director: `Bill Lawrence`, year: `2001 - 2010`, description: `In this series we follow JD as he starts his journey from a fresh medicine college alumni in to becoming a doctor. During this adventure he encounters a lot of ups and downs.`, seasons: [{ episodes: 24, startYear: `02.10.2001`, endYear: `21.05.2002` }, { episodes: 22, startYear: `26.09.2002`, endYear: `17.04.2003` }, ] }
实现思路
核心逻辑是先遍历myFavSeries.seasons数组,获取每一季的剧集总数,再用你熟悉的for循环输出对应集数编号。以下提供两种常用实现方式:
代码示例
方法1:用for...of遍历季数组
// 遍历每一季数据 for (const season of myFavSeries.seasons) { const totalEpisodes = season.episodes; console.log(`当前季剧集数:${totalEpisodes},集数编号:`); // 输出1到totalEpisodes的编号 for (let i = 1; i <= totalEpisodes; i++) { console.log(i); } }
方法2:用普通for循环遍历季数组
如果更习惯索引式循环写法,可以用这种方式:
const seasonCount = myFavSeries.seasons.length; // 遍历季数组索引 for (let seasonIndex = 0; seasonIndex < seasonCount; seasonIndex++) { const totalEpisodes = myFavSeries.seasons[seasonIndex].episodes; console.log(`第${seasonIndex + 1}季剧集数:${totalEpisodes},集数编号:`); // 输出集数编号 for (let i = 1; i <= totalEpisodes; i++) { console.log(i); } }
说明
- 两种方法的核心都是先提取每一季的
episodes值,将其作为内层for循环的终止条件(i <= totalEpisodes) - 方法2中用
seasonIndex + 1是因为数组索引从0开始,这样可以输出符合日常习惯的季数(第1季、第2季)
内容的提问来源于stack exchange,提问作者B. N. B
相关产品推荐
相关产品推荐

