题目的详细说明:比如有一个请求地址 url = “http://www.baidu.com?name=apple&price=5000&location=beijing“,要求封装一个函数getValue(key),当输入请求数据中的key时,得到对应的value。例如getValue(“name”) = “apple”。
我的解题思路如下,见代码:
// 假设请求的url地址为
var url = "http://www.baidu.com?name=apple&price=5000&location=beijing";
function getValue(key){
// 获取请求数据在url中的下标
var index = url.indexOf("?");
// 截取请求数据的字符串
var str = url.substr(index + 1); // name=apple&price=5000&location=beijing
// 将字符串转成数组,则每一对key和value目前是一个字符串,“=”左侧的为key,右侧为value
var arr = str.split("&"); // ["name=apple", "price=5000", "location=beijing"]
// 遍历得到的数组,然后将每个元素再次使用split方法转换成数组,则数组的一项为key,第二项为value,判断每一个数组的第一项是否与传入的参数key相同,相同则返回数组的第二项,即获得了匹配的value
for (var i = 0; i < arr.length; i++) {
newArr = arr[i].split("=");
if (key === newArr[0]) {
return newArr[1];
}
}
alert("The key is not exist");
}