1 个已接受解答
已接受的解答
您可以循环遍历其中一个列表并使用 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 );
3 条回复3
您可以循环遍历其中一个列表并使用 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 );
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
我通常使用 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 列表基本上可以包含任何内容。
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。