state = {
squares: Array(20).fill(null)
}
我有这个状态,当我点击一个随机方块时,数组开始填充该值。
我想控制数组中的所有元素是否为空。
const squares = this.state.squares.slice();
squares.forEach(square => square ? console.log(true) : console.log(false))
this.setState({ squares: squares })
我这样做了,当我开始点击方块时,我的控制台分别显示 true 和 false。在我点击所有方块后,它只显示为真。但是,在我点击所有方块之前,我只想看到错误。
我尝试使用 for 方法,但没有用。
for (let i = 0; i < squares.length; i++) {
if (squares[i] !== null) {
console.log(true)
} else {
console.log(false)
}
}
这些也是我试过的
squares.forEach(square => square !== null ? console.log(true) : console.log(false))
和
if (squares.includes(null) === -1) {
console.log(true)
}
我怎样才能得到这个问题的解决方案?
答案 0 :(得分:2)
通过使用 Array#every
或 Array#some
:
console.log(squares.every(sq => sq !== null))
// or
console.log(!squares.some(sq => sq === null))