Dado que tengo la siguiente condición para verificar si el valor de un par de variables ha cambiado.
<% if (ctx.recipient.@firstName != ctx.recipient.@firstName_init || ctx.recipient.@lastName != ctx.recipient.@lastName_init || ctx.recipient.@emailPreferredName != ctx.recipient.emailPreferredName_init) { document.controller.setValue('/ctx/vars/piiChanges',1); } %>¿Cómo puedo detectar cuál de las 3 condiciones cambió el valor?
Aquí está mi carga útil XML
<recipient JOB_TITLE="" blackListEmail="0" cmOneID="0" company="" email="dummy@dummy.com1" emailPreferredName="Dummy1" firstName="Dummy1" id="13246096" initiative="" investorType="" jurisdiction="" lastName="Dummy1" lawfulBasisLabel="None" lawfulBasisName="none" leadScore="0" origin="" status="0" statusLabel="Other" statusName="other" _operation="update" _key="@id" firstName_init="Dummy" lastName_init="Dummy" email_init="dummy@dummy.com" emailPreferredName_init="Dummy" blackListEmail_init="0"> <postalAddress addrDefined="0"/>Puede recorrer las propiedades del objeto de datos y obtener una lista de todas las claves que han cambiado. Algo como esto:
function getChangedProperties(recipient) { const changedProps = []; // Loop over each of the property keys of the recipient object Object.keys(recipient).forEach(key => { // Check non-init values to see if their init counterparts are equal if (!key.endsWith("_init") && recipient[`${key}_init`] !== recipient[key]) { changedProps.push(key); } }); return changedProps; }