![](/img/trans.png)
[英]Comparing two array of objects in JavaScript and update the values by comparing Keys
[英]Comparing values and keys of two objects
大家好
我有
Object A = {
"a" : "3.1.2",
"b" : "4.1.1",
"c" : "3.0.0",
"y" : "5.0.0"
}
Object B = {
"a" : "^3.1.2",
"t" : "^4.1.1",
"c" : "~2.2.2"
}
我如何检查对象B是否获得与对象A中相同的密钥? If the key in Object A === key in Object B
,请检查该键的值。 如果该键的值相同,则不执行任何操作。 如果从值Object A !=== value in Object B
,把它推到在下一实例中,阵列["c@3.0.0"]
如果key in Object A
不存在在Object B
立即推键和从对象A到同一数组["c@3.0.0", "y@5.0.0"]
您可以使用Object.entries()
, Array.reduce()
和String.replace()
来实现。
循环访问对象A的条目,对于每个条目,检查B中是否有条目。如果没有,则将值推入数组。 如果有一个条目并且版本号相同,则什么也不做,否则,也将其推入数组。
要比较版本号,可以使用正则表达式( /^\\^|~/
)在比较值之前删除第一个^
或~
。
const A = { "a" : "3.1.2", "b" : "4.1.1", "c" : "3.0.0", "y" : "5.0.0" }; const B = { "a" : "^3.1.2", "t" : "^4.1.1", "c" : "~2.2.2" }; const result = Object.entries(A).reduce((acc, [key, val]) => { const bEntry = B[key] && B[key].replace(/^\\^|~/, ''); return bEntry !== val ? [...acc, `${key}@${val}`] : acc; }, []); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.