创建两个对象数组的差异模式,并将其应用于Javascript中的另一个数组
我有两个不同对象的数组,可以包含其他对象数组:创建两个对象数组的差异模式,并将其应用于Javascript中的另一个数组,javascript,arrays,design-patterns,compare,difference,Javascript,Arrays,Design Patterns,Compare,Difference,我有两个不同对象的数组,可以包含其他对象数组: var array1 = [{"x":10,"y":10},{"a":10,"b":10,"c":10}] 和另一个阵列: var array2 = [{"x":10,"y":10},{"a":10,"b":25,"c":10}] 我需要第二个阵列上的不同之处: var tmp = [{},{"b":25}] e.g. 现在用tmp模式更新array1 有人能帮我吗?非常感谢您抽出时间 解决方案: : 让我们比较一下a,b=>{ 设ret={
var array1 = [{"x":10,"y":10},{"a":10,"b":10,"c":10}]
和另一个阵列:
var array2 = [{"x":10,"y":10},{"a":10,"b":25,"c":10}]
我需要第二个阵列上的不同之处:
var tmp = [{},{"b":25}] e.g.
现在用tmp模式更新array1
有人能帮我吗?非常感谢您抽出时间
解决方案:
:
让我们比较一下a,b=>{
设ret={};
为了让我进入b{
如果!a.hasOwnPropertyi | | b[i]!==a[i]{
ret[i]=b[i];
}
}
返回ret;
};
设a=[{x:10,y:10},{a:10,b:10,c:10}]
设b=[{x:10,y:10},{a:10,b:25,c:10}]
让长度=a.长度>b.长度?a、 长度:b.长度;
对于let i=0;i<长度;i++{
console.logcompareJSONa[i],b[i];
}很好。你试过什么?为什么要先将差异用于以后的更新?两个数组的每个元素都是一个对象吗?如果a中的密钥不在b中,会发生什么情况?如果b中的密钥不在a中会发生什么情况?我想将更新的位置发送到clientsimple game并减少数据流,因此我只想发送更改的属性数组的元素是对象,但此对象可以包含其他对象的数组等。。如果a中的键不在b中,则不会发生这种情况。这两个数组是相同的,它们只能在某些属性上有所不同