如何在JavaScript中嵌套循环数组实现指定重复播放逻辑?
实现指定播放日志的myLoop函数填充方案
原始代码
var sentences = [ ['journey27.mp4', [ [1, 2], [5, 7] ] ], ['journey28.mp4', [ [10, 12], [13, 17], [25, 36] ] ], ['journey30.mp4', [ [13, 15], [15, 19] ] ] ]; function playVideo(myUrl, startTime, endTime) { console.log(`Playing ${myUrl} from ${startTime} to ${endTime}`); } function myLoop(){ //what should I fill in here? }
需求说明
需要填充myLoop函数,实现以下控制台输出效果:每个时间区间对应的播放语句打印3次后切换到下一个区间,区间之间用空行分隔。
预期输出:
Playing journey27.mp4 from 1 to 2 Playing journey27.mp4 from 1 to 2 Playing journey27.mp4 from 1 to 2 Playing journey27.mp4 from 5 to 7 Playing journey27.mp4 from 5 to 7 Playing journey27.mp4 from 5 to 7 Playing journey28.mp4 from 10 to 12 Playing journey28.mp4 from 10 to 12 Playing journey28.mp4 from 10 to 12 Playing journey28.mp4 from 13 to 17 Playing journey28.mp4 from 13 to 17 Playing journey28.mp4 from 13 to 17 Playing journey28.mp4 from 25 to 36 Playing journey28.mp4 from 25 to 36 Playing journey28.mp4 from 25 to 36 Playing journey30.mp4 from 13 to 15 Playing journey30.mp4 from 13 to 15 Playing journey30.mp4 from 13 to 15 Playing journey30.mp4 from 15 to 19 Playing journey30.mp4 from 15 to 19 Playing journey30.mp4 from 15 to 19
填充后的myLoop函数
function myLoop(){ // 遍历所有视频条目 for (let videoItem of sentences) { const videoUrl = videoItem[0]; const timeRanges = videoItem[1]; // 遍历当前视频的每个时间区间 for (let [start, end] of timeRanges) { // 每个区间重复调用3次播放函数 for (let i = 0; i < 3; i++) { playVideo(videoUrl, start, end); } // 区间结束后打印空行分隔 console.log(''); } } }
逻辑说明
- 第一层循环遍历
sentences数组,提取每个视频的URL和对应的时间区间集合; - 第二层循环遍历当前视频的所有时间区间,解构出开始时间与结束时间;
- 第三层循环执行3次,每次调用
playVideo输出播放日志; - 每个时间区间的3次日志输出完成后,打印空字符串实现区间间的换行分隔。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

