Код Middle CI и параллельный запуск обновлено
Развернуть матрицу джоб
Условие
Упрощённая матрица CI. Напишите expandMatrix(matrix): ключи с массивами значений дают декартово произведение (первый ключ меняется медленнее всех, порядок ключей как в объекте), ключ exclude содержит массив частичных комбинаций: комбинация удаляется, если совпадает по всем ключам хотя бы одного элемента exclude. Ключ include содержит массив комбинаций, которые добавляются в конец как есть. Вернуть массив объектов-комбинаций.
Примеры
expandMatrix({"os":["linux","win"],"browser":["chromium","firefox"]}) // [{"os":"linux","browser":"chromium"}, {"os":"linux","browser":"firefox"}, {"os":"win","browser":"chromium"}, {"os":"win","browser":"firefox"}]
expandMatrix({"os":["linux","win"],"browser":["chromium","firefox"],"exclude":[{"os":"win","browser":"firefox"}]}) // [{"os":"linux","browser":"chromium"}, {"os":"linux","browser":"firefox"}, {"os":"win","browser":"chromium"}]
expandMatrix({"shard":[1,2,3]}) // [{"shard":1}, {"shard":2}, {"shard":3}]
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.