JSFiddle - React, Tailwind, and code Playground

by John Doe

JavaScript

"use strict";
function addClass(obj, cls) {
    //1 этап превраoftv в массив
    var classes = obj.className ? obj.className.split(' ') : [];
    //2 этап проверка, если есть такое значение выходим из функции
    for (var i = 0; i < classes.length; i++) {
     if (classes[i] == cls) return;   
    }
    //3 этап добрались досюда добавили в массив новое значение через метод push
    classes.push(cls);
    //4 этап обновили свойство (при помощи метода join вернули опять в строку и присвоили)
    obj.className = classes.join(' ');
    
    // допустил ошибку забыл  добавть obj к свойству ошибку не выдало так как посчитало за локальную перемменую мог бы добавить use strict и всё было б зб
}

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

addClass(obj, 'new');
addClass(obj, 'open');
addClass(obj, 'me');
alert(obj.className);   // open menu new me