> 文档中心 > JavaScript数组切割路径,将参数都存放进一个空对象的实现

JavaScript数组切割路径,将参数都存放进一个空对象的实现

应用场景:

用户提交订单页面,但是这个路径里面有许多拼接的参数,需要我们手动截取,这个时候就可以使用数组切割的方法结合给对象添加属性的方法就可以实现分割URL,获取所有的参数。

代码

var url = 'https://www.baidu.com/a/b?name=王小二&age=8&hobby=敲代码' function fn(str) {     let obj = {};     var arr = str.split('?')[1].split('&');     arr.forEach(item => {  obj[item.split('=')[0]] = item.split('=')[1];     })     return obj; } console.log(fn(url));

解释:

对以上代码的解释:var url = 'https://www.baidu.com/a/b?name=王小二&age=8&hobby=敲代码' function fn(str) {     let obj = {};     var arr = str.split('?')[1].split('&');     arr.forEach(item => {  obj[item.split('=')[0]] = item.split('=')[1];     })     return obj; } console.log(fn(url));// 我们的需求:将路径里面的参数拿出来,并且存放进一个对象里面。解释:    var arr = str.split('?')[1].split('&');第1个split解释:      声明一个空数组,对其字符?的地方进行一个切割,数组切割返回的是一个数组,我们想要的后半段是第二个数据,也就是下标为1的数据,所以我们这个时候就拿到了('name=王小二&age=8&hobby=敲代码')后半段;第2个split解释: 第1次切割后的代码是('name=王小二&age=8&hobby=敲代码')这个样子的,这个时候我们再以&符号进行切割,我们就得到了:['name=王小二','age=8','hobby=敲代码']// for循环往对象里面存放数据的解释: arr.forEach(item => {      obj[item.split('=')[0]] = item.split('=')[1]; })    讲解将数组的数据存放到对象里面前,先说一下,给对象添加属性的方式又都有哪些呢?举例:    var obj = { a:1    }    第1种:obj.b = 2;第2种:var age = '王子豪';obj[age] = '18';      上面的for也是根据这种方法,将每一个数组的每一个元素,再以=等于号进行切割,此时数组的第一项为key值,第二项为value值,这样就实现了获取路径中所有参数的操作。     

函数声明都有哪些方式?

  1. 普通声明:function 函数名(){ //逻辑代码 }
  2. 字面量声明:var fn1 = function(){ //逻辑代码 }
  3. 构造函数声明:var fn2 = new Function()