很久没有接触这类题目了,发现还是很考察基础的,不过基本手敲两遍就会了。
题目:
有这样一个 URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段 JS 程序提取 URL 中的各个 GET 参数(参数名和参数个数不确定),将其按
key-value 形式返回到一个 json 结构中,如{a:’1′, b:’2′, c:”, d:’
xxx’, e:undefined}。
代码:
function getKeyValue(str){
if(!/\?/.test(str)){
return null;
}
var split_1 = str.split("?")[1].split("&");
var key_value = {};
for(var i = 0; i < split_1.length; i++){
var arr = split_1[i].split("=");
if (!isNaN(arr[1])) {
// 如果 arr[1] 是一个有效的数字
key_value[arr[1]] = Number(arr[1]);
} else {
// 如果 arr[1] 不是数字,保留原始值
key_value[arr[1]] = arr[1];
}
key_value[arr[0]] = arr[1];
}
return key_value;
}
这里应该注意一下,有些值是数字类型的,不要也将其转化为字符串类型的了,需要额外处理。