怎么用Js解析这种复杂的url?包括重复的Key转化为数组,未指定值约定为1等等要求?

https://img2.mukewang.com/5c946b5e0001ee0f08000533.jpg

慕村9548890
浏览 741回答 4
4回答

小怪兽爱吃肉

要在赋值的地方做个判断// 先声明一个变量var hash = {};url.replace(//([^=?&]+)=([^=?&]+)//g,function(){    if(!hash[obj[arguments[1]]]){        obj[arguments[1]] = arguments[2];        hash[arguments[1]] = true;    }else{        // 这里做是否是第一个 条件判断看你自己的需求        if(Array.isArray(obj[arguments[1]])){            obj[arguments[1]].push(arguments[2]);        }else{            const firstVal = obj[arguments[1]];            obj[arguments[1]] = [firstVal,arguments[2]];        }    }})

慕后森

供参考const obj = url  .substr(1)  .split('&')  .reduce((o, p) => {    let [k, v = ''] = p.split('=')    v = v === '' || (isNaN(v) ? v : Number(v))    o[k] = o[k]      ? Array.isArray(o[k])        ? [...o[k], v]        : [o[k], v]      : v    return o  }, {})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript