Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2018, 01:00
Новичок на форуме
Отправить личное сообщение для Wild_Wolf Посмотреть профиль Найти все сообщения от Wild_Wolf
 
Регистрация: 04.03.2017
Сообщений: 1

Вставка в get заброс/обновление данных в get запросе
Доброго времени суток читающему.
Написал функцию, функция работает, но выглядит сложновато. А где сложно там и ошибки, и лишний код очень и очень часто встречаются. Итак, форумчане, прошу конструктивной критики
function insertIntoGet(key, value) {
        var res = '?';
        if (location.search.length > 0) {
            var search = location.search.substr(1);
            var arSearch = search.split('&');
            var isHaveKey = false;
            arSearch.forEach(function (el, i, arr) {
                var arEl = el.split('=');
                if (arEl[0] == key) {
                    arEl[1] = value;
                    el = (value != "") ? arEl.join('=') : "";
                    arr[i] = el;
                    isHaveKey = true;
                }
            });
            res += arSearch.join('&') + (!isHaveKey ? "&" + key + "=" + value : "");
            if (res == "?") res = "";
        }  else  {
            res += key + "=" + value;
        }
        return encodeURI(location.origin + location.pathname + res + location.hash);
    }
Ответить с цитированием