Un grand merci pour votre disponibilité sur ce forum sur lequel vous n'hésitez nullement à partager vos connaissances !
J'ai renoncé à l'utilisation de
indexOf() au profit de
includes() suite à une formule conditionnelle de longueur inconnue, liée à des tableaux dynamique.
Voici ce code source personnel permettant d'obtenir le résultat escompté : Extérioriser des datas orphelins qui non pas d'index (code, date ou autres valeurs) pour suite à donner.
Le fonctionnement en l'état est visible via console.log et peut certainement être optimisé en termes de rapidité…
Ce lieu étant un lieu d'échange ce fichier est à disposition de tout ceux qui ne souhaiterait pas réinventer la roue...
Amicalement à tous,
Jean-Paul
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
</head>
<body>
<script>
// Index (Ancien format tableau)
var Array_A = [];
Array_A[0] = "122537";
Array_A[1] = "122263";
Array_A[2] = "252526";
// Datas
var Array_B = [
["122536", "Num 1", "Num 1"],
["252526", "Num 2", "Num 2"],
["122263", "Num 3", "Num 3"],
["122RAS", "Num 4", "Num 4"],
];
/*
// Valeurs inconnues à récupérer :
var Array_B = [
["122536", "Num 1", "Num 1"],
["122RAS", "Num 4", "Num 4"],
];
*/
// Tableaux A et B dynamiques...
// Routine pour tester si toutes les valeurs de Array_B ont un index (Colonne 0) correspondant au contenu de Array_A
// But : Localiser les valeurs orphelines
Data_Orphelins(Array_A, Array_B);
function Data_Orphelins(Index, Datas) {
var Test = 0;
var Tmp = 0;
for (var i = 0; i < Datas.length; i++) {
for (var n = 0; n < Index.length; n++) {
// Déterminer incrémentation de la lecture de Datas
if (i !== Tmp) {
// Non correspondance totale avec données de Index
if (Test == Index.length) {
console.log("========================================================");
console.log(" => Data Datas Orphelin : [" + Datas[i - 1] + "]");
console.log("========================================================");
}
console.log("Changement de Datas " + i);
Tmp = i;
Test = 0;
}
// Test absence d'une valeur du Index en data 0 du tableau Datas
if (String(Index[n]).includes(String(Datas[i][0])) == false) {
Test++;
console.log("Valeur Index[" + n + "] " + Index[n] + " Absente [" + Datas[i] + "] > " + Datas[i][0]);
console.log("i = " + i + " Test 1 " + Test);
} else {
// Test si Présence d'une valeur du Index en data 0 de Datas
console.log("Valeur Index[" + n + "] " + Index[n] + " Présente [" + Datas[i] + "] > " + Datas[i][0]);
console.log("i = " + i + " Test 2 " + Test);
}
}
}
// Test du Dernier élément en sortie de boucle
if (Test == Index.length) {
// Non correspondance avec tableau Index
console.log("======================================================");
console.log(" => Data Datas Orphelin : [" + Datas[i - 1] + "]");
console.log("======================================================");
}
}
</script>
</body>
</html>
Fichier test :