Увеличение набора элементов jQuery

Есть переменная, означающая количество элементов в выборке, скажем li, если элементов меньше какого-то минимального количества, к примеру 12-ти, то нужно увеличить количество этих элементов в доме до минимального значения, причем увеличивать нужно именно теми элементами, что имеются в доме, т.е. их клонировать.

Элементы нужно удваивать. Т.е. если элементов скиска два, то прибавлять по два, пока не будет больше или равно минимальному количеству, если три то по три и т.д.

Как на jQuery правильнее всего это реализовать?

Я бы клонировал узлы, начиная с 0 каждый раз когда есть какой элемент клонировать последовательно до тех пор, пока количество узлов в коллекции не станет MIN_ITEMS.

// Input
var MIN_ITEMS = 15;
var $selection;

// Internals
var currentlyCloning = 0;
var itemToClone;
while ($selection.length < MIN_ITEMS) {
	// get 1 by 1 items from initial selection
	itemToClone = $selection.get(currentlyCloning);
	// Start from first element, if there is nothing to clone
	if (!itemToClone) {
		currentlyCloning = 0;
		break;
	}
	// add clone to initial selection
	$selection.add($(itemToClone).clone());
	// Next time clone next item in a row
	currentlyCloning += 1;
}

UPD поправил код (именование, не использовался счетчик)

Я так понял, что за один проход клонирования берется по одному элементу? А в задаче нужно брать столько элементов, сколько было изначально.

Т.е. если в HTML в списке два элемента и их меньше 15-ти, то при их клонировании нужно прибавлять к текущему набору именно эти два элемента. Если элементов изначально 3 то нужно прибавлять каждый раз по три именно этих элемента и так далее.

Склонировать случайный набор элементов одним махом невозможно (если только не будут выполнены). Поэтому мой код принципиально мало чем отличается от того, где клонирование происходит на коллекции, все равно под капотом будет поштучное клонирование.

нужно брать столько элементов, сколько было изначально.

Именно в такой формулировке не получится

Было 8 штук, минимальное количество 12. Взять еще 8 не получится, надо брать меньше. Клонировать узлы не по одному нельзя, значит я могу в цикле клонировать узлы по порядку пока узлы есть, что в решении и происходит.

Было 8 штук, минимальное количество 12. Взять еще 8 не получится, надо брать меньше. Клонировать узлы не по одному нельзя, значит я могу в цикле клонировать узлы по порядку пока узлы есть, что в решении и происходит.

Надо было оговориться, что не имеет значения переполнение, т.е. если элементов изначально 8, то можно удвоить значение, главное условие, чтобы их не было меньше 12, если минимальное количество 12

Гут. Алгоритм из первого комментария так и работает (только если выборка элементов не пустая).