![](/img/trans.png)
[英]How can I compare two arrays of objects and add new key to an objects in the second array
[英]How can I compare two objects and add the missed values?
我想通过对象值“基准”比较两个对象。 就我而言,我想检查“mengeGes”中的“基准”值是否也在“v”对象中。 如果不是,则将“mengeGes”对象的值添加到“v”对象。
在我的示例中,具有“基准”2022-02-22 的对象应从 mengeGes 添加到 v:
const mengeGes = [{ "Datum": "2022-02-20", "Datum_str": "20.02.2022" }, { "Datum": "2022-02-21", "Datum_str": "21.02.2022" }, { "Datum": "2022-02-22", "Datum_str": "22.02.2022" } ] var v = [{ "Datum": "2022-02-20", "Datum_str": "20.02.2022", "xx": 4 }, { "Datum": "2022-02-21", "Datum_str": "21.02.2022", "xx": 4 } ] // The expected result: v = [{ "Datum": "2022-02-20", "Datum_str": "20.02.2022", "xx": 4 }, { "Datum": "2022-02-21", "Datum_str": "21.02.2022", "xx": 4 }, { "Datum": "2022-02-22", "Datum_str": "22.02.2022" } ] console.log(v)
我们可以创建一个包含“缺失”对象的数组,如下所示:
var missing = mengeGes.filter(menge => v.filter(vv => vv.Datum === menge.Datum).length === 0);
在这里,我们循环遍历mengeGes
并通过检查v
中是否存在Datum
匹配的对象来过滤它
然后,我们可以将该数组与现有的v
组合起来:
var combine = [ ...v, ...missing ];
const mengeGes = [{ "Datum": "2022-02-20", "Datum_str": "20.02.2022" }, { "Datum": "2022-02-21", "Datum_str": "21.02.2022" }, { "Datum": "2022-02-22", "Datum_str": "22.02.2022" } ] var v = [{ "Datum": "2022-02-20", "Datum_str": "20.02.2022", "xx": 4 }, { "Datum": "2022-02-21", "Datum_str": "21.02.2022", "xx": 4 } ]; var missing = mengeGes.filter(menge => v.filter(vv => vv.Datum === menge.Datum).length === 0); var combine = [ ...v, ...missing ]; console.log(combine);
结果:
[
{
"Datum": "2022-02-20",
"Datum_str": "20.02.2022",
"xx": 4
},
{
"Datum": "2022-02-21",
"Datum_str": "21.02.2022",
"xx": 4
},
{
"Datum": "2022-02-22",
"Datum_str": "22.02.2022"
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.