就像在php
( link ) 中完成的一样,但我想在javascript
.
var data1 = [{
"id": 1,
"nombre": "Mezcla"
},
{
"id": 6,
"nombre": "No Se"
},
{
"id": 5,
"nombre": "Etiquetado"
},
{
"id": 4,
"nombre": "Vaciado"
},
{
"id": 3,
"nombre": "Llenado"
},
{
"id": 2,
"nombre": "Esterilizacion"
}
];
console.log(data1);
var data2 = [{
"id": 1,
"nombre": "Mezcla"
},
{
"id": 4,
"nombre": "Vaciado"
},
{
"id": 3,
"nombre": "Llenado"
},
{
"id": 2,
"nombre": "Esterilizacion"
}
];
console.log(data2);
更新 1:
在这 2 个中,arrays
我返回以下内容:
var data3 = [{
"id": 6,
"nombre": "No Se"
},
{
"id": 5,
"nombre": "Etiquetado"
}
];
console.log(data3);
我不知道这是否是您正在寻找的方式,但我添加了它,因为它达到了预期的结果。用两个
For
简单的数组循环两个数组。然后去比较字段之间的差异。这显然可以使用纯 javascript 来完成,但是对于使用集合,已经有经过充分验证的工具,例如下划线和lodash。
下面的解决方案使用了lodash的find方法。
您的问题的主要困难是,在 javascript 中,两个对象彼此不相等,即使它们具有相同的属性。对于相同的使用方法查找某个对象的存在
indexOf
它总是说对象不在数组中。当两个对象的可枚举属性重合时,有必要实现一个相等函数,然后在嵌套循环中遍历两个数组,检查是否存在满足该自定义函数的元素。我宁愿不重新发明轮子。
在这里,我留下一个纯 JavaScript 版本,虽然它有点“丑陋”。这个想法是将对象转换为字符串,以使它们更易于使用。步骤是:
代码如下所示:
如果您不想将对象转换为字符串,则可以定义自己的比较函数并遍历数组以查找重复元素(而不是使用
indexOf
)。像这样的东西:
这是我的版本
array_diff_assoc
:1 o más
安排JSON.stringify
arr1
值。示范:
根据您的问题,我假设对象总是很简单,没有方法或 html 节点,否则解决方案会有点复杂
我对这个问题的版本