如何检查数组所有索引下的指定key blocks是否全部为空?
实现方案
你可以用以下两种方式实现需求,推荐优先用数组内置方法,代码更简洁易读:
方案1:使用Array.prototype.every(推荐)
every方法会遍历数组,只有所有元素都满足你定义的判断条件时才返回true,完美匹配你需要「所有blocks都为空才执行操作」的场景:
// 判断所有项的blocks长度都为0 const isAllBlocksEmpty = blockColumns.every(column => column.blocks.length === 0) if (isAllBlocksEmpty) { // 在这里执行你需要的操作 }
方案2:基于原有for循环修改
如果要保留你原有for循环的写法,可以新增一个标记变量记录是否存在非空的blocks,遍历到不符合项时直接跳出循环减少不必要的遍历:
let allBlocksEmpty = true for (let i = 0; i < blockColumns.length; i++) { // 只要有一个blocks长度大于0,就标记为不符合,跳出循环 if (blockColumns[i].blocks.length > 0) { allBlocksEmpty = false break } } if (allBlocksEmpty) { // 在这里执行你需要的操作 }
内容的提问来源于stack exchange,提问作者Reacting
相关产品推荐
相关产品推荐

