javascript - 如何检查节点列表中是否包含没有内容的元素?
问题描述
我希望我的函数首先检查是否有一个没有内容的元素,然后如果条件为真 - 执行代码,否则不运行该函数。我只是不知道如何检查是否有一个没有内容的元素。
function randomBlock(){
let random = Math.floor(Math.random() * blocks.length)
if(blocks[random].textContent == ""){
blocks[random].textContent = "O"
} else{
randomBlock()
}
}
解决方案
过滤NodeList
到空的,然后选择一个随机元素。过滤后,您可以检查是否有可用的空块。
function randomBlock() {
let emptyBlocks = [...blocks].filter(block => block.textContent.trim() == "");
if (emptyBlocks.length > 0) {
let random = Math.floor(Math.random() * emptyBlocks.length);
emptyBlocks[random].textContent = "O";
} else {
console.log("No empty blocks left");
}
}
推荐阅读
- flutter - 如何在flutter webview中监听事件?
- networking - 如何使用 OSI 或 TCP/IP 级别传输帧
- c - 如何返回结构变量的指针地址
- javascript - 为什么 undefined 不是文字,文字一词的目的是什么?
- hangfire - Hangfire 获取但不排队
- javascript - Highcharts 类型未定义
- c - 帮助解决 Linux 内核转储崩溃:无法在虚拟地址 00000001 处处理内核 NULL 指针取消引用
- bit-manipulation - 是否有一种算法可以将每个 n 长位从一个数字中移位而不会溢出?
- firebase - Flutter:如何删除等待以利用 Firebase 离线持久性?
- reactjs - React redux 无法从反应组件将发布数据发送到 mapStateToProps