Tengo un objeto que puede estar en uno de 4 estados:
{"A": "something", "B": [{"C": "D"}]}{"A": "", "B": [{"C": "D"}]}{"A": "something", "B": null}{"A": "", "B": null} En mi validación de esquema Ajv, quiero que la propiedad "B" sea nullable: true solo si la propiedad "A" no es una cadena vacía.
¿Cómo puedo conseguir esto?
Espero que la siguiente función de ayuda te ayude. Puede hacer cambios en el valor de la asignación según lo necesite
function mappNullable(obj, nonNullable, nullableProperty) { if(obj[nonNullable] != '') { obj[nullableProperty] = {nullable: true}; } return; } const t1 = {"A": "something", "B": [{"C": "D"}]}; const t2 = {"A": "", "B": [{"C": "D"}]}; const t3 = {"A": "something", "B": null}; const t4 = {"A": "", "B": null}; mappNullable(t1, "A", "B"); mappNullable(t2, "A", "B"); mappNullable(t3, "A", "B"); mappNullable(t4, "A", "B"); console.log(t1); // {"A": "something", "B": {nullable: true}}; console.log(t2); // {"A": "", "B": [{"C": "D"}]}; console.log(t3); // {"A": "something", "B": {nullable: true}}; console.log(t4); // {"A": "", "B": null};