【发布时间】:2020-01-24 04:16:54
【问题描述】:
var videos = {
a: Popcorn("#a"),
b: Popcorn("#b"),
c: Popcorn("#c")
}
videos.forEach(function(vid){
if (vid.media.readyState === 4) {
vid.currentTime(
videos.a.currentTime()
);
}
});
在某些情况下,我正在尝试扩展此 JSFiddle:Synchronizing Playback of Two Videos,以便我可以同时播放任意数量的视频。
此外,我想知道是否有任何方法可以将 foreach 循环应用于数组中的每个元素,除了第 0 个索引中的元素。
【问题讨论】:
-
对象没有内置的
forEach方法。在您提供的链接中,他们正在做Popcorn.forEach,而不是videos.forEach -
videos是一个对象而不是一个数组。forEach适用于数组。 -
您应该使用
Object.keys(videos)来遍历密钥,并使用videos[key]来访问该项目 -
@adiga: Nitpick: 一些 对象(特别是
Array.prototype)确实有forEach方法。这个没有。 :D
标签: javascript arrays foreach