【发布时间】:2020-06-30 11:33:45
【问题描述】:
我一直在尝试编写返回函数。该函数的作用是存储最后生成的两个 ID 号,并在有新 ID 时追加,删除第一个。
我有这个函数可以创建 ID 并使用该 ID 播放视频。
function newVideo(){
let rando = Math.floor((Math.random() * 3970) + 1);
document.getElementById("vsrc").src = "https://raw.githubusercontent.com/ondersumer07/vinematik-videos/master/vid/" + rando + ".mp4";
document.getElementById("videoEl").load();
return rando;
}
我返回rando 以在此函数外使用它,我可以在函数外访问它,问题是,函数外的变量不会在每次newVideo() 运行时更新。
代码如下:
let rando = newVideo();
let vidids = [];
if (vidids.length < 2) {
vidids.push(rando)
console.log("added")
} else {
vidids.shift()
console.log("deleted")
};
基本上这样做是获取返回的rando 值并将其推送到vidids 数组,如果有两个以上则删除第一个但不会,它不会更新let vidids = [];出于某种原因数组。每次运行 newVideo() 函数时,我都需要更新它。
另外,如果该数组中的项目少于两个,我希望添加 if,如果其中有两个以上的项目,则从数组的开头删除。不确定这是否也有效。
我似乎不知道该怎么做,我做错了整件事还是这个功能还有希望?我应该如何编写该函数?
编辑:我已经更改了vidids.length 部分,但问题仍然存在,因为let rando = newVideo(); 没有更新。
【问题讨论】:
-
你有错字。它应该是
if (vidids.length < 2),因为您正在检查数组长度 -
哦,谢谢。我错过了那个,但仍然不能解决数组不更新的问题。我的 if 函数仍然向数组添加一个,因为它没有更新 vidids 数组。谢谢你,这仍然是个问题。
标签: javascript arrays function if-statement