如何检查一个列表是否包含来自另一个列表的任何值?是否有一个优雅的单行代码来实现这一点,而不是使用 Contains() 函数遍历第二个列表?
自动化和脚本回复:如何检查一个列表是否包含来自另一个列表的任何值?虽然不是一行,但比循环更优雅:
A = {1, 2, 3, 4, 5};
B = {3, 6, 7};
check = Associative Array(A);
check << Intersect(Associative Array(B));
N Items(check);回复:如何检查一个列表是否包含来自另一个列表的任何值?您可以循环遍历其中一个列表并使用 Contains() 来查看是否在另一个列表的任何地方找到特定的列表项。
或者,您可以将两个列表转换为单独的关联数组,然后检查两个数组之间的相交。
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 );回复:如何检查一个列表是否包含来自另一个列表的任何值?我通常使用 For Each + Break 或 Associative Arrays,但是有很多不同的方法,你可以使用一些“不正确”的函数,例如 Transform Each (在我看来,“单行”通常是糟糕的想法,因为它们往往难以阅读)
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)));
这还取决于您要比较的内容:字符串、整数、浮点数、列表......因为 JMP 列表基本上可以包含任何内容。