zl程序教程

您现在的位置是:首页 >  前端

当前栏目

使用JavaScript解析网址

JavaScript 解析 网址 使用
2023-09-11 14:19:18 时间

使用JavaScript解析网址成为json结构格式

看到一个面试题,主要是将下列的网址问号后面的部分解析成json结构格式的对象

URL :'http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e’
解析后:{ a: ‘1’, b: ‘2’, c: ’ ', d: ‘xxx’, e: undefined }

var str = 'http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e'
// {a:’1′, b:’2′, c:”, d:’ xxx’, e:undefined}
var arr = str.split('?')[1];
var arr1 = arr.split('&');
var obj = {};
console.log(arr)
for (var i = 0; i < arr1.length; i++){
  // console.log(arr1[i])
  if(arr1[i].indexOf('=') != -1){
    var newArr = arr1[i].split('=')//使用split对数组中的 = 进行分割,获取到一个新的数组
    // console.log(newArr)
    obj[newArr[0]] = newArr[1]; //将newArr这个数组中的第一个值作为键,第二个值作为值,组成键值对放入obj对象中
  }else{
    // console.log(arr1[i])
    obj[arr1[i]] = undefined;
  }
}
console.log(obj) //{ a: '1', b: '2', c: '', d: 'xxx', e: undefined }
// res = JSON.stringify(obj);//转化为JSON字符串

这个题主要考验面试者对数组和对象以及split( )的使用熟练度,当然也需要一点逻辑思维,难度上面对于新手来说可能会有点难度,但是逻辑思维比较敏捷的程序员来写却是非常简单的,总之一句话,熟能生巧,多写多练。