Решение заключается в том, чтобы разбить `className` в массив классов, а затем пройтись по нему циклом. Если класс есть - удаляем его `splice`, заново объединяем массив в строку и присваиваем объекту. ```js //+ run function removeClass(obj, cls) { var classes = obj.className.split(' '); for (i = 0; i < classes.length; i++) { if (classes[i] == cls) { classes.splice(i, 1); // удалить класс *!* i--; // (*) */!* } } obj.className = classes.join(' '); } var obj = { className: 'open menu menu' } removeClass(obj, 'blabla'); removeClass(obj, 'menu') alert(obj.className) // open ``` В примере выше есть тонкий момент. Элементы массива проверяются один за другим. При вызове `splice` удаляется текущий, `i-й` элемент, и те элементы, которые идут дальше, сдвигаются на его место. Таким образом, **на месте `i` оказывается новый, непроверенный элемент**. Чтобы это учесть, строчка `(*)` уменьшает `i`, чтобы следующая итерация цикла заново проверила элемент с номером `i`. Без нее функция будет работать с ошибками.