javascript - 比较两个包含对象的数组,包括其他对象、数组等

标签 javascript arrays node.js object

看看这些数组比较代码的例子:

// example-1
let array1 = ['a', 'b'];
let array2 = ['a', 'b'];
console.log(array1.equals(array2)); // returns true

// example-2
let array1 = ['a', 'b', 1];
let array2 = ['a', 'b', 1];
console.log(array1.equals(array2)); // returns true

// example-3
let array1 = ['a', 'b', {'a': 1, 'b': 2}];
let array2 = ['a', 'b', {'b': 2, 'a', 1}];
console.log(array1.equals(array2)); // returns false

我正在寻找一种方法来比较其中包含对象的数组,但不考虑嵌套对象中元素的顺序,如上面的示例 3 中所述。

最佳答案

你应该JSON.stringify()数组并像这样比较它们:

var arr1 = ['a', 'b', {'a': 1}];
var arr2 = ['a', 'b', {'a': 1}];
console.log(JSON.stringify(array1) == JSON.stringify(array2)); 

之所以有效,是因为它将对象数组转换为更简单的比较状态(JSON 字符串)。仅当数组以与 OP 示例中相同的顺序包含它们的属性时,这才有效。

关于javascript - 比较两个包含对象的数组,包括其他对象、数组等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863806/

相关文章:

javascript - 代码拆分如何隐藏应用程序的某些部分?

javascript - 如何根据子字段的值对对象数组进行排序?

ios - 如何读取Azure应用服务中的请求正文?

javascript - 检测何时在元素上触发 jQuery 的 hide() 方法

javascript - 即使页面向下滚动,也会将 div 垂直和水平居中

arrays - 计算两个排序数组之间的差异

arrays - 访问数组中对象的方法。 ( swift )

node.js - Azure管道中的UI测试显示错误无法使用node js找到chrome二进制文件

JavaScript 内存泄漏 (Node.js/Restify/MongoDB)

javascript - TreeView 中的 Angular 复选框