Me gustaría comparar dos objetos por el valor de objeto "Datum". En mi caso me gustaría comprobar si el valor "Datum" en "mengeGes" también está en el objeto "v". De lo contrario, agregue los valores del objeto "mengeGes" al objeto "v".
En mi ejemplo, el objeto con el "Datum" 2022-02-22 debería agregarse de mengeGes a 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)Podemos crear una matriz que contenga los objetos 'faltantes' así:
var missing = mengeGes.filter(menge => v.filter(vv => vv.Datum === menge.Datum).length === 0); Aquí hacemos un bucle sobre mengeGes y lo filtramos comprobando si hay un objeto en v donde Datum maches
Luego, podemos combinar esa matriz con la v existente:
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);Resultado:
[ { "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" } ]