javascript - 如何比较两个大对象数组的身份

标签 javascript arrays reactjs object lodash

我必须比较 React componentwillreceiveprops 中的两个大对象数组。我有 261 个国家/地区的数组。例如从这里开始。

 countries = [
     {id: 1, name: "Australia", code: "AU", isRemoved: false}
      ...
      261 objects
 ]

我必须比较下一个 props 中收到的数组与我当前的国家数组绝对相同,即所有属性、长度、属性值,所有东西都是相等的。请帮我。我写了这样的东西,但我知道 !== 不正确。

if (this.state.countriesInitial !== countries) {//TODO: compare arrays
      this.setState({
          countriesInitial: countries
      })
}

任何答案都会被考虑在内。也许 lodash 有一些方法可以简化任务,我不知道。任何答案都会被考虑。提前致谢。

最佳答案

是的,lodash 有一个让生活更轻松的方法 - _.isEqual() :

var arr1 = [ /* Very long array */ ],
    arr2 = [ /* Also long array */ ];
var equalArrays = _.isEqual(arr1, arr2);

或者,使用 JSON 方法:

var arr1 = [ /* Very long array */ ],
    arr2 = [ /* Also long array */ ];
var equalArrays = JSON.stringify(arr1) == JSON.stringify(arr2);

关于javascript - 如何比较两个大对象数组的身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54924966/

相关文章:

php - 将数组值翻转为数组键的函数?

javascript - React SDK可以在纯JavaScript中使用吗?

javascript - 事件委托(delegate),如何针对 div 内的特定跨度

javascript - 内部魔镜警报功能

javascript - jQuery:如何创建每个项目有两个值的数组

ios - NSCoding - 将数组保存到文件或 nsdefaults

javascript - 使用 $.contains 查找一个元素是否包含另一个具有焦点的元素

javascript - 支持着色和纹理的 GLSL 着色器

ruby-on-rails - JWT 在 Rails + React 应用程序中用于身份验证有什么用

javascript - redux-mock-store getActions 返回空数组