根据元素控制数组

时间:2021-06-10 17:17:00

标签: javascript arrays reactjs

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)
}

我怎样才能得到这个问题的解决方案?

1 个答案:

答案 0 :(得分:2)

通过使用 Array#everyArray#some

console.log(squares.every(sq => sq !== null))
// or
console.log(!squares.some(sq => sq === null))