), и убеждаться, что результирующая ячейка имеет как минимум заданные ширину и высоту, даже если внутренняя ячейка – меньше.
>// Ваш код.
>var sc = new StretchCell(new TextCell("abc"), 1, 2);
>console.log(sc.minWidth());
>// → 3
>console.log(sc.minHeight());
>// → 2
>console.log(sc.draw(3, 2));
>// → ["abc", " "]
Интерфейс к последовательностям
Разработайте интерфейс, абстрагирующий проход по набору значений. Объект с таким интерфейсом представляет собой последовательность, а интерфейс должен давать возможность в коде проходить по последовательности, работать со значениями, которые её составляют, и как-то сигнализировать о том, что мы достигли конца последовательности.
Задав интерфейс, попробуйте сделать функцию >logFive
, которая принимает объект-последовательность и вызывает >console.log
для первых её пяти элементов – или для меньшего количества, если их меньше пяти.
Затем создайте тип объекта >ArraySeq
, оборачивающий массив, и позволяющий проход по массиву с использованием разработанного вами интерфейса. Создайте другой тип объекта, >RangeSeq
, который проходит по диапазону чисел (его конструктор должен принимать аргументы >from
и >to
).
>// Ваш код.
>logFive(new ArraySeq([1, 2]));
>// → 1
>// → 2
>logFive(new RangeSeq(100, 1000));
>// → 100
>// → 101
>// → 102
>// → 103
>// → 104