我正在使用React的componentDidUpdate生命周期方法。
componentDidUpdate
我试图确定两个数组是否相同。
我的prevState数组如下所示:
prevState
prevState.players = [ { name: 'Wayne Rooney', age: 31 }, { name: 'Lionel Messi', age: 29 }, { name: 'Robbie Fowler', age: 42 } ];
和this.state阵列看起来像这样:
this.state
this.state.players = [ { name: 'Wayne Rooney', age: 31 }, { name: 'Lionel Messi', age: 29 }, { name: 'Robbie Fowler', age: 42 } ];
如您所见,如果您展开下面的代码段,则它们不相等:
let playersOne = [{ name: 'Wayne Rooney', age: 31 }, { name: 'Lionel Messi', age: 29 }, { name: 'Robbie Fowler', age: 42 } ]; let playersTwo = [{ name: 'Wayne Rooney', age: 31 }, { name: 'Lionel Messi', age: 29 }, { name: 'Robbie Fowler', age: 42 } ]; console.log(playersOne == playersTwo)
这是我的生命周期代码。
componentDidUpdate(prevProps, prevState) { if(prevState.players != this.state.players) { this.updatePlayers(this.state); } }
任何人都可以建议确定数组是否相等的最佳方法吗?
JSON.stringify(playersOne) == JSON.stringify(playersTwo)