本题要特别注意题目中“2. 不指定参数名称,返回全部的参数对象 或者 {}”的要求,不能遗漏~
function getUrlParam(sUrl, sKey) { let array = sUrl.split('?')[1].split('#')[0].split('&'); let result = []; if(sKey === undefined){ result = {}; } for(let i=0; i<array.length; i++){ let temp = array[i].split('='); if(sKey === undefined){ if(!(temp[0] in result)){ result[temp[0]] = temp[1]; } else { if(result[temp[0]] instanceof Array){ result[temp[0]].push(temp[1]); } else { result[temp[0]] = [result[temp[0]], temp[1]]; } } } else if(temp[0] === sKey){ result.push(temp[1]); } } if(result.length === 0) { return ''; } if(result.length === 1) { return result[0]; } return result; } let b = getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe','key'); // let b = getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe'); console.log(b);