获取对象中第一项的键值

时间:2018-07-11 07:53:35

标签: javascript

我有以下对象,它定义了段落的结束时间和开始时间:

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”?

2 个答案:

答案 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;
});