Задать вопрос
@olya_097

Почему не i++ в шестой строке?

function removeClass(obj,cls){
var classes=obj.className.split(" ");
for(var i=0;i<classes.length;i++){
if(classes[i]==cls){
	classes.splice(i,1);
  i--; // почему здесь не i++ ?
			}
	}

obj.className=classes.join(" ");
}

var obj = {
  className: 'open menu menu'
}

removeClass(obj, 'blabla');
removeClass(obj, 'menu')
alert(obj.className) // open
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 1 комментарий
Решение пользователя Александр К ответам на вопрос (2)
Minifets
@Minifets
Hello world!!!
После удаления из массива например 4-ого элемента, 5-ый станет 4-ым, и нам нужно продолжить обход массива с 4-ого, вместо 5-ого. Если вставить i++, то обход продолжится на 6-ом элементе, т.е. мы пропустим 2 индекса.
Ответ написан