小编典典

检查两个数组是否包含相同的对象-反应componentDidUpdate

reactjs

我正在使用React的componentDidUpdate生命周期方法。

我试图确定两个数组是否相同。

我的prevState数组如下所示:

prevState.players = [
  {
    name: 'Wayne Rooney',
    age: 31
  }, 
  {
    name: 'Lionel Messi',
    age: 29
  },
  {
    name: 'Robbie Fowler',
    age: 42
  }
];

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

任何人都可以建议确定数组是否相等的最佳方法吗?


阅读 518

收藏
2020-07-22

共1个答案

小编典典

JSON.stringify(playersOne) == JSON.stringify(playersTwo)

2020-07-22