web前端经典面试题

url参数解析为一个对象与序列化数据为URL参数

2019-05-07  本文已影响2人  全栈弄潮儿

url参数解析为一个对象

const url_t = "http://www.taobao.com/index.html?key0=0&key1=1&key2=2";
function parseQueryString(url){
    let result = {};
    
    if(!url || ('string' !== typeof url && String !== url.constructor)){
        return result;
    }
    const str = url.split("?");
    const items = str && str.length > 1 ? str[1].split("&") : [];
    let arr = [];

    for(let i=0; i<items.length; i++) {
        arr=items[i].split("=");
        result[arr[0]]=arr[1];
    }

    return result;
}

const obj=parseQueryString(url_t);
console.log(obj)

序列化数据为URL参数

function serialize(data) {
    const queryList = Object.keys(data).map((key) => {
        return key + '=' + encodeURIComponent(data[key]);
    });
    return queryList.join('&');
}

const data = {
     key0: 0,
     key1: 1,
     key2: 2
}

serialize(data );
上一篇下一篇

猜你喜欢

热点阅读