我有以下对象,它定义了段落的结束时间和开始时间:
var times = {
"p1": [24.500, 29.268],
"p2": [29.268, 29.441],
"p3": [29.441, 29.640]
};
当段落更改时,我希望致电updateCurrentParagraph
:
vid.addEventListener("timeupdate", function() {
var t = this.currentTime;
for (var key in times) {
if (t >= times[key][0] && t < times[key][1])
{
updateCurrentParagraph(key);
return;
}
}
// at end of audio
if (times[times.length-1][1] == t){
updateCurrentParagraph(???);
return;
}
updateCurrentParagraph("unknown");
return;
});
我在???
处如何获得“ p3”?
答案 0 :(得分:0)
只需通过将对象作为自变量传递即可使用Object.keys
方法。
var key = Object.keys(times)[0];
var values = times[key]
答案 1 :(得分:0)
如果属性未排序,则可以保存在循环后有适当时间检查的最后一个键。
vid.addEventListener("timeupdate", function () {
var t = this.currentTime,
last;
for (var key in times) {
if (times[key][0] >= t && times[key][1] < t) {
updateCurrentParagraph(key);
return;
}
if (times[key][1] === t) {
last = key;
}
}
// at end of audio
if (last) {
updateCurrentParagraph(last);
return;
}
updateCurrentParagraph("unknown");
return;
});