我知道"包含"将检查一个序列是否包含另一个序列的所有元素。我想知道:
Is there any simple way to check whether a sequence contains any element of another sequence?
更新 我不想检查A是否包含B的所有元素,而是包含B的任何一个元素。
答案 0 :(得分:0)
如果你想检查一些seq seq
是否包含另一个序列test_seq
的所有元素,我会使用set_difference
:
test_seq.setDifference(seq).isEmpty().not()
如果seq
非常大(就像在表格上映射的结果一样),您只能通过reduce
有效地执行此操作:
seq.map(function(row) {
return test_seq.setIntersection([row])
}).reduce(function(a, b) {
return a.setUnion(b);
}).count().eq(test_seq.count())
答案 1 :(得分:0)
您可以使用do尝试difference。
例如,您的表格 MyTable 包含 MyArray ,其中包含字符串数组。
r.table("MyTable").get("my_id").do(
function (record) {
return record('MyArray').difference(["something1", "something2"]).count().ne(record('MyArray').count()
)
}
)
如果字段 MyArray 包含[“something1”,“something2”]的任何元素,它将返回true
。否则 - false