http_build_query для JS

Q_BASIC

Хранитель порядка
Регистрация
30 Ноя 2013
Сообщения
516
Реакции
1.240
Приветствую,

Разыскиваю функцию кодировать объект/массив JS в URL параметры.

Полно ответов в гугле, но они не работают с вложенными массивами:

{x:{a:1, b:2}}
=>
x[a]=1&x[b ]=2

А массивы могут быть многоуровневые, то есть много уровней вложенности

Сам спросил, сам ответил:
Код:
function http_build_query(data)
{
    let gTemp = [];
    for(index in data)
    {
        if( Array.isArray(data[index]) || typeof data[index] === 'object')
        {
            let lTemp = [];
            for(subIndex in data[index])
            {
                lTemp[index+'['+subIndex+']'] = data[index][subIndex];
            }
          
            gTemp[gTemp.length] = http_build_query(lTemp);
        }
        else
        {
            gTemp[gTemp.length] = index+'='+encodeURIComponent(data[index]);
        }
    }
  
    return gTemp.join('&');
}
 
Последнее редактирование:
Назад
Сверху