Показать сообщение отдельно
  #6 (permalink)  
Старый 21.04.2012, 23:50
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну как-то так:
var AIS = {};
var AISShipColors = ['#48AEFF', '#7FFFD4', '#C00054', '#87EF84', '#DBA7F8', '#EBC79E'];

AIS.colorIterator = function () {
	var lastIndex = 0;
	return function () {
		if (lastIndex >= AISShipColors.length) {
			lastIndex = 0;
		}
		return AISShipColors[lastIndex++];
	};
};

var colorIter1 = AIS.colorIterator();

alert([colorIter1(), colorIter1(), colorIter1(), colorIter1(), colorIter1(), colorIter1(), colorIter1()]);

Если итераторы должны зависеть друг от дурга, то просто сделайте lastIndex свойством массива, как написал FINoM
Ответить с цитированием