javascript - 数组推送不起作用
问题描述
为什么不container.push(random[0])
工作?
我找不到问题的解决方案......我需要将 HTML 对象放入容器数组中,而且它不会去那里。
let container = new Array();
let x = document.querySelectorAll('.trigger');
function getFlag() {
let random = [x[Math.floor(Math.random() * x.length)]];
if (!container.includes(random[0])) {
random[0].classList.remove('trigger');
console.log('random n: ' + random[0]);
container.push(random[0]);
}
}
console.log('x length: ' + x.length)
console.log('array length: ' + container.length)
.trigger {
display: none;
}
<body onload="getFlag()">
<section class="trigger">
<p>1</p>
</section>
<section class="trigger">
<p>2</p>
</section>
<section class="trigger">
<p>3</p>
</section>
</body>
解决方案
试试这个也许:
let container = [];
let x = document.querySelectorAll('.trigger');
function getFlag() {
console.log("pushed");
/*When you click on the button, if "pushed" is not logged, here's an error*/
let random = [x[Math.floor(Math.random() * x.length)]];
if (!container.includes(random[0])) {
random[0].classList.remove('trigger');
console.log('random n: ' + random[0]);
container.push(random[0]);
console.log('x length: ' + x.length)
console.log('array length: ' + container.length)
}
}
如果在函数将随机数推送到数组后记录数组的长度,也许你会得到结果
推荐阅读
- flutter - ListBody 中的空值
- android - 杀死应用程序时将数据保存到 Android SQLite 数据库
- java - 如何通过 Java 输出控制台运行 GDB 并接受 GDB 命令?
- python - 大熊猫连续年份总和的差异
- java - .jar 不会找到内部资源图像,但编译的程序会
- c++ - 如果语句在 while 循环中不起作用(C++)
- python - 在 Excel 中清理 Twitter 数据
- javascript - 如何在 ts 文件中使用 js 方法?
- javascript - 如何使用 create-react-app(无弹出)导入共享打字稿代码?
- javascript - 如何将刻度分配为与 D3.js 中轴所基于的对象相同的对象的不同键值?