4 回答
TA贡献1852条经验 获得超1个赞
要在赋值的地方做个判断
// 先声明一个变量
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]];
}
}
})
TA贡献1802条经验 获得超5个赞
供参考
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
}, {})
添加回答
举报