Bonjour.
titre precedent : "Comment obtenir le TimeStamp qui ne correspond pas aux jours identiques en comparant deux tableaux".
J'ai édité le titre de ma question, car je viens de remarquer que pour une simple comparaison de chiffres la condition "false" pour non égal ne fonction pas non plus .
avec cet exemple :Quelqu'un peut-il m'expliquer .Je ne trouve aucune explication
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 let Arr1 = [12, 5, 8, 130, 44], Arr2 = [12, 54, 18, 130, 44]; let s = []; for (var i = 0; i < Arr1.length; i++) { for (var j = 0; j < Arr2.length; j++) { if(Arr1[i] === Arr2[j]){ }else{ s.push(Arr1[i]); } console.log(s); } } //resultat : [12,12,12,12,5,5,5,5,5,8,8,8,8,8,130,130,130,130,44,44,44,44]
Je cherche à faire une comparaison de deux tableaux contenant des valeurs Timestamp (dates Unix) en vérifiant que les dates converties* respectives ne sont pas les mêmes dans chaque tableau et si c'est le cas d'afficher la ou les Timestamp qui correspondent .
* dates converties = je vérifie: l'année, le mois et le jour.
Actuellement mon code qui respecte toutes les conditions désirées m'affiche un résultat qui ne correspond pas à ce que j'attends.
Codepen de mon code
La valeur retournée est [1670331420], alors qu'elle devrait être [1670417820]
Si vous pouvez m'aider à comprendre mon erreur , je vous remercie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 //TimeStamp from period choose by user let Array1 = [1670245020, 1670331420, 1670417820]; let Array2 = [1670251033, 1670335700]; //Dans l'ordre des timestamp : 5, 6 et 7 dec . const TimeStampAreOnSameDay = (Time1, Time2) => Time1.getFullYear() === Time2.getFullYear() && Time1.getMonth() === Time2.getMonth() && Time1.getDate() === Time2.getDate(); //console.log(TimeStampAreOnSameDay(new Date(1670417820*1000),new Date(1670335700*1000))); function SamedayCompare(Array1, Array2) { let DSelected = []; for (var i = 0; i < Array2.length; i++) { for (var j = 0; j < Array1.length; j++) { let nbchoose = Array1.length, nbexisting = Array2.length; let result = TimeStampAreOnSameDay( new Date(Array2[i] * 1000), new Date(Array1[j] * 1000) ); if (result !== true) { DSelected.push(Array1[j]); //Add these values } } } return DSelected; } console.log(SamedayCompare(Array1, Array2));
Partager