我正在尝试创建一个将在for循环中模拟的变量Youtube Object。
这个概念是,我想为for循环中的每个剪辑设置一个可变的速度。这个想法是YouTube接收一个如这里所描述的对象。这似乎很难。
我在这里创建了函数:
function YTObjects(videoId1, ...args) {
let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
},
if ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined")) {
event: function (args[2], args[3]) {
player.setPlaybackRate(args[2]*args[3]);
},
}
};
return object1;
}
这使我能够创建一个变量对象。但是我没能在一个依赖于参数(2和3(的键中创建一个函数。
你能在这方面帮忙吗?
使用三元运算符有条件地分配event
属性,或者在定义对象后使用if
。您可能不希望在正在添加的匿名函数中有任何params。
let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
},
event: ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined"))
? function () {
player.setPlaybackRate(args[2]*args[3]);
},
: undefined
};
return object1;
或
let object1 = {
height: "315",
width: "560",
videoId: videoId1,
playerVars: {
autoplay: 0,
loop: 1,
...(typeof args[0] !== "undefined" && { start: `${args[0]}` }),
...(typeof args[1] !== "undefined" && { end: `${args[1]}` }),
}
};
if ((typeof args[2] !== "undefined") && (typeof args[3] !== "undefined")) {
object1.event = function () {
player.setPlaybackRate(args[2]*args[3]);
};
}
return object1;