url array params

Парсинг УРЛa с многомерными параметрами

by Yunus Gaziev

JavaScript

function getUrlVars(url) {

    var vars = [],
        hash = null,
        tmpVar = null,
        hashes = url.slice(url.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++) {

        hash = hashes[i].split('=');

        if (vars[hash[0]] && Object.prototype.toString.call(vars[hash[0]]) !== '[object Array]') {
            tmpVar = vars[hash[0]];
            vars[hash[0]] = [];
            vars[hash[0]].push(tmpVar);
            vars[hash[0]].push(hash[1]);
        } else if (!vars[hash[0]]) {
            vars[hash[0]] = hash[1];
        }
    }

    return vars;
}

var url = 'http://host.com/?filters[48][]=1823&filters[28][]=428&filters[28][]=11795&filters[28][]=2104&only_car=1';

console.log(getUrlVars(url));