当前位置: 首页 > Web前端 > JavaScript

Day2-100手写-实现URLSearchParams

时间:2023-03-27 15:41:35 JavaScript

前言1.方法说明方法函数URLSearchParams.append()插入指定的键/值对作为新的搜索参数。URLSearchParams.delete()从搜索参数列表中删除指定的搜索参数及其对应的值。URLSearchParams.entries()返回一个可以遍历所有键/值对的迭代器对象。URLSearchParams.get()获取指定搜索参数的第一个值。URLSearchParams.getAll()获取指定搜索参数的所有值并返回一个数组。URLSearchParams.has()返回一个布尔值以确定此搜索参数是否存在。URLSearchParams.keys()返回迭代器该对象包含键/值对的所有键。URLSearchParams.set()为一个搜索参数设置一个新值,如果有多个值则删除所有其他值。URLSearchParams.sort()按键名排序。URLSearchParams.toString()返回一个由搜索参数组成的字符串,可以直接用在URL上。URLSearchParams.values()返回迭代器,该对象包含键/值对的所有值。2、实现代码classMyURLSearchParams{/***@params{string}init*/constructor(init){this.val=''if(init.indexOf('http')>-1){this.val=init}else{this.val=init.slice(init.indexOf('?')+1)}this.arr=this.val.split('&')//console.log(this.val);}/***@params{string}name*@params{any}value*/append(name,value){lettmp=name+'='+valuethis.arr.push(tmp)return'?'+this.arr.join('&')}/***@params{string}name*/delete(name){letres=[]for(leti=0;ivoid}回调*/forEach(回调){for(leti=0;i{if((res==null)&&(value.indexOf(name)==0)){lettmp=value.split('=')res=tmp&&tmp[1]}})returnres}/***@param{string}name*@return{string[]}*返回name的值列表*/getAll(name){letres=[]this.arr.filter((value)=>{if(value.indexOf(name)==0){让tmp=value.split('=')res.push(tmp[1])}})returnres}/***@params{string}name*@return{boolean}*/has(name){letres=falsethis.arr.filter((value)=>{if((res==false)&&(value.indexOf(name)==0)){lettmp=value.split('=')res=tmp.length>0?true:false}})returnres}/***@return{Iterator}*/keys(){letres=[]for(leti=0;ib[0]){return1}else{return-1}})让sum=[]res.forEach((value)=>{sum.push(value.join('='))})this.arr=sumreturnres}/***@return{string}*/toString(){returnthis.arr.join('&')}/***@return{Iterator}values*/values(){letres=[]for(leti=0;i