如果不知道数组里面有哪些数据可以先打印出来看

function getUrlParam(sUrl, sKey) {
    // split() 方法用于把一个字符串分割成字符串数组。
    //取出每个参数的键值对放入arr数组
    var arr = sUrl.split('?')[1].split('#')[0].split('&');
//  console.log(arr);
// arr现在的数据为: [ 'key=1', 'key=2', 'key=3', 'test=4' ]
    const obj={};
    arr.forEach(element => {
        // 取出数组中每一项的键与值
        const [key,value] = element.split('=');
        if(obj[key]===void 0){
       // 表示第一次遍历这个元素,直接添加到对象上面
            obj[key]=value;
        }else{
            // 表示不是第一次遍历说明这个键已有,通过数组存起来。
            obj[key]=[].concat(obj[key],value);
        }
    });
    console.log(obj);
    // 如果该方法为一个参数,则返回对象。如果为两个参数,sKey存在,则返回值或数组,否则返回空字符。
    //  console.log(sKey === void 0 ? obj : obj[sKey] || '');
    return sKey === void 0 ? obj : obj[sKey] || '';
    // 最后obj的值为:{ key: [ '1', '2', '3' ], test: '4' }
}
//调用这个函数,实参参数就是题目给的,sUrl,sKey是形参
getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe','key');