繁体   English   中英

比较两个对象的值和键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM