Javascript 检测数组对象是否为;“正在使用”;
我有一些脚本,它从服务器调用AJAX信息,然后将信息显示在页面上的块中。每8秒,这些信息块就会淡出一组新的信息 来自服务器的信息存储在固定队列中,该队列每8秒向服务器推送一次新项目 对于每个块,我都会从数组中随机抽取一个项目来显示。唯一的问题是我的积木有很多重复的 是否有方法检查并查看该数组项是否已从另一个块调用,如果是,它将继续查找另一个未使用的项Javascript 检测数组对象是否为;“正在使用”;,javascript,arrays,random,queue,detection,Javascript,Arrays,Random,Queue,Detection,我有一些脚本,它从服务器调用AJAX信息,然后将信息显示在页面上的块中。每8秒,这些信息块就会淡出一组新的信息 来自服务器的信息存储在固定队列中,该队列每8秒向服务器推送一次新项目 对于每个块,我都会从数组中随机抽取一个项目来显示。唯一的问题是我的积木有很多重复的 是否有方法检查并查看该数组项是否已从另一个块调用,如果是,它将继续查找另一个未使用的项 var queue = FixedQueue( 50 ); $(document).ready(function() {
var queue = FixedQueue( 50 );
$(document).ready(function() {
$('.submit').click(function(){
setInterval(function(){
queue.push(fulltweet);
},8000);
});
});
setInterval(function(){
randotime = intervals[Math.floor(Math.random()*intervals.length)];
$('.block1', '.photo1:nth-child(1)').queue(function(){
$(this).hide();
$(this).html(queue[0]);
$(this).fadeIn(2000);
$(this).delay(randotime);
$(this).dequeue();
});
$('.block1', '.photo1:nth-child(1)').fadeOut(2000);
},randotime);
我根据队列的长度创建了一个随机数,并使用它调用
队列[rando]
,但同样,我在块中不断得到重复项。首先,如果您不想在数组中重复项,请不要让它们重复。在将新项目插入阵列之前,请控制它是否存在于阵列中。如果使用对象而不是基元类型(字符串、整数等),则使用相等操作可能不起作用。因此,在插入之前,您需要一个函数来检查数组中是否存在给定元素,并且该函数必须使用一个equals函数来比较两个给定对象
其次,javascript允许您在运行时向对象添加字段。因此,当一个块到达并显示一个对象时,可以在该对象上放置一个字段。比如说它的名字叫‘因纽斯’
当块A到达对象时:
object.inuse = true;
当块B随机到达同一对象时:
var object = pickRandomly();
while (object.inuse) {
object = pickRandomly();
}
// here's the unique object which is not used by another block.
我希望这有帮助。
如果你能提供一个示例代码,我可以提供一个更好的答案。你能发布你的代码吗?为什么你要随机选择一个而不是第一个?当您从队列中读取第一个值时,该值通常也会被删除,第二个值将成为第一个值。您永远不会选择相同的值两次。