[英]How to iterate over the following array of objects inside another object in Javascript?
[英]How do I iterate over a an array of objects that live inside another method?
我正在video.js上使用一個名為videojs-overlay的插件。 這使我可以向播放列表中的單個視頻添加重疊式廣告。
我現在想擴展此功能,以允許在不同的視頻上顯示不同的疊加層(這些疊加層是在方法內部定義的)。 我不知道這是什么問題。 如何遍歷此對象以訪問播放列表中不同視頻上的每個疊加層?
player.playlist()方法-定義不同的視頻:
player.playlist([{
name: 'Video 1',
overlays: [{
content: '<div class="overlay-1a"></div>',
showBackground: false,
start: 'pause',
end: 'play',
align: 'left-middle'
},
{
content: '<div class="overlay-1b"></div>',
showBackground: false,
start: 'pause',
end: 'play',
align: 'right-middle'
}
]
},
{
name: 'Video 2',
overlays: [{
content: '<div class="overlay-2a"></div>',
showBackground: false,
start: 'pause',
end: 'play',
align: 'left-middle'
},
{
content: '<div class="overlay-2b"></div>',
showBackground: false,
start: 'pause',
end: 'play',
align: 'right-middle'
}
]
}
]);
當播放列表中的視頻發生更改時,為該事件編寫代碼:我希望此事件中的重疊式廣告進行更新,並且應該迭代每個視頻中的每個覆蓋。 由於某種原因,這不起作用
player.on('playlistitem', function (event, video) {
player.playlist().overlays.forEach(function () {
player.overlay({
content: video.content,
showBackground: video.showBackground,
start: video.start,
end: video.end,
align: video.align,
class: video.class
});
});
這可能就是你所追求的
player.on('playlistitem', function (event, video) {
player.playlist().forEach(function(video) {
video.overlays.forEach(function (overlay) {
overlay({
content: video.content,
showBackground: video.showBackground,
start: video.start,
end: video.end,
align: video.align,
class: video.class
});
})
});
循環播放每個視頻,然后針對每個視頻在每個覆蓋圖上循環並更新覆蓋圖。 也許這...
player.on('playlistitem', function (event, video) {
var playlist =player.playlist();
playlist = playlist.map(function(video) {
video.overlays.map(function (overlay) {
overlay({
content: video.content,
showBackground: video.showBackground,
start: video.start,
end: video.end,
align: video.align,
class: video.class
});
});
player.playlist(playlist);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.