如何檢查一個清單是否包含另一個清單中的任何值?是否有一個優雅的單行程式碼,而不是使用 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 或關聯數組,但是有許多不同的方法,您可以使用有點“不正確”的函數,例如 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 列表基本上可以包含任何內容。