js 如何判断一个数字在一个数字数组的那个区间?

我要做的是一个微信audio播放器音频字幕随时间高亮的效果。
假如(一个完整的音频包含这些):
“我是一名前端新司机” 5秒
“我是一匹来自西北的狼” 10秒
“我很开心看到大家” 7秒
“XXXXXXXXXXX” 13秒

一个完整的音频包含这些句子(时长:5+10+7+13),后端已把这些数据整理返回到前端。
[5,10,7,13]

在音频播放过程中我通过currentTime获取他的当前秒,(这个播放器是可以通过进度条调整的)

setInterval(function() {
   audio.currentTime
}, 50);

假如是一个23,我如何通过后端传来的[5,10,7,13],比较是那个区间?
如果获取到这个区间我在通过添加类名让他高亮了,就是卡到这了,请各位前辈指点迷经。

<p>我是一名前端新司机</p><p>我是一匹来自西北的狼</p><p class="red">我很开心看到大家</p><p>XXXXXXXXXXX</p>


回首忆惘然
浏览 2091回答 1
1回答

尚方宝剑之说

就现在这个问题,function&nbsp;a(arr,num){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i=&nbsp;0,sum=0,len=arr.length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!(len>0)){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//如果&nbsp;num&nbsp;的值超过了&nbsp;数组之和,不在考虑范围之类 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i;i<len;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum+=arr[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(sum>=num){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log('需要的值i='+i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;a([5,10,7,13],23);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript