Skip to content

Commit 0f3257d

Browse files
committed
refactor: enhance decay chain logic and data integrity.
1 parent 07aed5e commit 0f3257d

1 file changed

Lines changed: 24 additions & 18 deletions

File tree

online/radioactive-decay.html

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,12 @@ <h2>Notes:</h2>
445445

446446
let element = extendedData.db_data.elements.find(el => el.symbol === symbol);
447447

448-
return (element && Array.isArray(element.atomic_masses) && index < element.atomic_masses.length) ? element.atomic_masses[index] : false;
449-
448+
if (typeof index !== 'number' || !element || !Array.isArray(element.atomic_masses)) return null;
449+
450+
let mass = element.atomic_masses[index];
451+
452+
return (mass !== undefined) ? mass : null;
453+
450454
}
451455

452456
function hasChaine(arr) { return (Array.isArray(arr) && arr.length > 1); }
@@ -651,7 +655,7 @@ <h2>Notes:</h2>
651655

652656
else if (decayMode === "t") return `(${pNucleus.A}, ${pNucleus.Z})${pNucleus.element} <i class="fa-solid fa-arrow-right atomic-arrow"></i> (${dNucleus.A}, ${dNucleus.Z})${dNucleus.element} <span class="atomic-plus"> + </span> (3, 1)H <span class="atomic-plus"> + </span> Q`;
653657

654-
else return "Qui n'a pu être établie...";
658+
else return "L'équation n'a pas pu être établie...";
655659

656660
}
657661

@@ -669,44 +673,46 @@ <h2>Notes:</h2>
669673
670674
`;
671675

672-
let chainHTML = "";
676+
let chainHTML = "";
673677

674678
chainHTML += decayModes.map((mode, i) => {
675679

676680
let p = steps[i];
677681

678682
let d = steps[i + 1];
679-
683+
680684
return createParagraph(`
681-
685+
682686
Réaction ${i + 1}, suivant le mode ${decayModeString(mode.trim())}:
683687
684688
<br>
685-
689+
686690
<span class="color-green alone-bold">${generateHTMLEquationResponse(p, d, mode.trim())}</span>
687-
691+
688692
`);
689693

690694
}).join('');
691695

692-
chainHTML += steps.map(step =>
696+
chainHTML += steps.map(step => {
693697

694-
createParagraph(`
698+
let stepMass = getAtomicMassWithRadioisotopeNumber(step.element, step.A);
699+
700+
return createParagraph(`
695701
696702
<span class="color-green alone-bold">(${step.A}, ${step.Z})${step.element}</span> a pour masse atomique:
697703
698-
<span class="color-orange alone-bold"> ${getAtomicMassWithRadioisotopeNumber(step.element, step.A)} uma</span>.
704+
<span class="color-orange alone-bold"> ${(stepMass && !isNaN(stepMass)) ? `≈ ${stepMass} uma` : 'Inconnue'}</span>.
699705
700-
`)
706+
`);
701707

702-
).join('');
708+
}).join('');
703709

704710
chainHTML += steps.filter((step, index, self) => index === self.findIndex(s => s.element === step.element)).map(step =>
705-
711+
706712
createParagraph(`
707713
708714
<span class="color-green alone-bold">${step.element}</span> a pour nom complet:
709-
715+
710716
<span class="color-red alone-bold">${getElementNameWithSymbol(step.element)}</span>.
711717
712718
`)
@@ -945,9 +951,9 @@ <h2>Notes:</h2>
945951

946952
resultMass = getAtomicMassWithSymbol(lastIndex, lastNucleus.element);
947953

948-
$("#info-1").html(`<i class="fa-solid fa-square point"></i> Admet comme masse atomique du noyau parent: <span class="color-yellow alone-bold">${!isNaN(parentMass) ? `≈ ${parentMass} uma` : 'Inconnue'}</span>`);
949-
950-
$("#info-2").html(`<i class="fa-solid fa-square point"></i> Admet comme masse atomique du noyau résultant: <span class="color-orange alone-bold">${!isNaN(resultMass) ? `≈ ${resultMass} uma` : 'Inconnue'}</span>`);
954+
$("#info-1").html(`<i class="fa-solid fa-square point"></i> Admet comme masse atomique du noyau parent: <span class="color-yellow alone-bold">${(parentMass && !isNaN(parentMass)) ? `≈ ${parentMass} uma` : 'Inconnue'}</span>`);
955+
956+
$("#info-2").html(`<i class="fa-solid fa-square point"></i> Admet comme masse atomique du noyau résultant: <span class="color-orange alone-bold">${(resultMass && !isNaN(resultMass)) ? `≈ ${resultMass} uma` : 'Inconnue'}</span>`);
951957

952958
$("#info-3").html(`<i class="fa-solid fa-square point"></i> Admet comme nom complet du noyau résultant: <span class="color-red alone-bold">${getElementNameWithSymbol(lastNucleus.element)}</span>`);
953959

0 commit comments

Comments
 (0)