Сравните массив подмножеств с основным массивом в Mule 4 (DW2.0) - PullRequest
3 голосов
/ 13 апреля 2020

У меня есть фиксированный массив элементов как: ['a', 'b', 'c', 'd'] Это будет использоваться в качестве базы при сравнении входных массивов (которые могут быть подмножеством основного массива)

Я получаю входной массив различных комбинаций который может удовлетворять нижнему набору сценариев ios:

['a', 'c'] должен возвращаться true - может быть поднабором основного набора

['a', 'b', 'd', 'c'] должен возвращаться true - нет порядка ограничения и могут совпадать с мастер-набором

['a', 'b', 'c', 'd', 'e'] должен возвращать false - не может содержать дополнительный элемент

['e', 'f'] должен возвращать false - не найдено соответствующих элементов

и наконец:

['a'] должен возвращать true - может быть поднабором и может также содержать один элемент, однако этот единственный элемент должен быть всегда 'a'

['b','c','d'] должен вернуть false - все входные массивы должны содержать хотя бы элемент 'a'

Ответы [ 2 ]

4 голосов
/ 13 апреля 2020

Итак, вам нужно проверить, что первый элемент совпадает, а затем все они присутствуют в массиве test.

%dw 2.0
output application/json
import * from dw::core::Arrays

var test= ['a', 'b', 'c', 'd']
var value = ['a']
---
test[0] == value[0] and (value every ((item) -> test contains  item ))
2 голосов
/ 13 апреля 2020
%dw 2.0
output application/json
var mainset = ['a', 'b', 'c', 'd']
var subset =  ['a', 'c']
---
{
    isSubset : isEmpty(subset -- mainset) and contains(subset,'a')
}
...