Javascript 数组推送不能完成他的任务
为什么Javascript 数组推送不能完成他的任务,javascript,arrays,random,Javascript,Arrays,Random,为什么container.push(随机[0])不起作用 我找不到解决这个问题的办法。。。我需要将HTML对象放入容器数组中,但它没有放到那里 let container=new Array(); 设x=document.querySelectorAll('.trigger'); 函数getFlag(){ 设random=[x[Math.floor(Math.random()*x.length)]; 如果(!container.includes(随机[0])){ 随机[0]。类列表。删除('t
container.push(随机[0])
不起作用我找不到解决这个问题的办法。。。我需要将HTML对象放入容器数组中,但它没有放到那里
let container=new Array();
设x=document.querySelectorAll('.trigger');
函数getFlag(){
设random=[x[Math.floor(Math.random()*x.length)];
如果(!container.includes(随机[0])){
随机[0]。类列表。删除('trigger');
console.log('random n:'+random[0]);
container.push(随机[0]);
}
}
console.log('x长度:'+x.length)
console.log('array length:'+container.length)
.trigger{
显示:无;
}
一,
二,
三,
尝试以下方法:
let container=[];
设x=document.querySelectorAll('.trigger');
函数getFlag(){
控制台日志(“推送”);
/*单击按钮时,如果未记录“按下”,则出现错误*/
设random=[x[Math.floor(Math.random()*x.length)];
如果(!container.includes(随机[0])){
随机[0]。类列表。删除('trigger');
console.log('random n:'+random[0]);
container.push(随机[0]);
console.log('x长度:'+x.length)
console.log('array length:'+container.length)
}
}
为什么你认为推送不起作用?数组末尾有一个
元素。不要将所有内容连接到一个字符串;使用console.log(“random n:,random[0])
测试您的值。使用console.log(container.slice())
查看阵列的当前状态;我没有看到你在任何地方确认你的预期结果。random
作为一个数组,总是得到random[0]
而不是random
,这有什么意义呢?如果你指的是console.log('array length:'+container.length)
显示0
而不是1
,原因是console.log()
是在getFlag()
实际可以将元素推入容器之前执行的。如果将该行移到getFlag()
函数体中,您将看到它正确地显示1
。我想使用random
,但如果我将random.classList.remove('trigger')
设置为数组,则会返回一个错误;如果替换let random=[x[Math.floor(Math.random()*x.length)]代码>使用let random=x[Math.floor(Math.random()*x.length)]
(没有最外面的方括号)您可以使用random
而不是random[0]
来引用元素。噢,哇,我不知道这是可能的,谢谢!现在我已经修复了我的代码。谢谢大家!!