Comment vérifier si une liste contient des valeurs d’une autre liste ?Existe-t-il une ligne unique élégante pour cela plutôt que d'itérer sur la deuxième liste à l'aide de la fonction Contains() ?
Automatisation et scriptsRe : Comment vérifier si une liste contient des valeurs d'une autre liste ?Pas une seule ligne, mais plus élégant qu'une boucle :
A = {1, 2, 3, 4, 5};
B = {3, 6, 7};
check = Associative Array(A);
check << Intersect(Associative Array(B));
N Items(check);Re : Comment vérifier si une liste contient des valeurs d'une autre liste ?Vous pouvez parcourir l'une des listes et utiliser Contains() pour voir si l'élément de liste spécifique se trouve n'importe où dans l'autre liste.
Ou, vous pouvez convertir les deux listes en tableaux associatifs distincts, puis vérifier l'intersection entre les deux tableaux.
Names Default To Here( 1 );
listA = {"a", "b", "c"};
listB = {"d", "c", "f"};
inBothList = {};
For Each( {member}, listA,
If( Contains( listB, member ),
Insert Into( inBothList, member )
)
);
Show( inBothList );
arrayA = Associative Array( listA );
arrayB = Associative Array( listB );
arrayA << intersect( ArrayB);
show( arrayA );Re : Comment vérifier si une liste contient des valeurs d'une autre liste ?J'utilise généralement For Each + Break ou Associative Arrays, mais il existe de nombreuses méthodes différentes où vous pouvez utiliser des fonctions un peu « incorrectement » telles que Transform Each (« one-liner » comme celui-ci sont généralement des idées horribles (à mon avis) car elles ont tendance à être difficiles à lire)
Names Default To Here( 1 );
A = {1, 2, 3, 4, 5};
B = {3, 6, 7};
r = Eval(Transform Each({item}, A, Output("Expression", "Any"), Contains(B, item)));
Cela dépend également de ce que vous comparez : chaînes, entiers, flottants, listes, ... car les listes JMP peuvent contenir pratiquement n'importe quoi.