Похоже, что он принимает массив (или похожий на массив) объект, называемый roots
, и для каждого его элемента он привязывает каждый элемент publics
:
Так что если бы roots
было ["/a", "/b"]
, а publics было ["alpha", "beta", "gamma"]
, то получилось бы:
[["/a/alpha", "/a/beta", "/a/gamma"], ["/b/alpha", "/b/beta", "/b/gamma"]]
Теперь мы можем понять, почему это нужно сгладить. Flatten тянет массивы компонентов в один массив. Итак, joined.flatten
составляет:
["/a/alpha", "/a/beta", "/a/gamma", "/b/alpha", "/b/beta", "/b/gamma"]