Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从查询字符串JS中删除空参数_Javascript - Fatal编程技术网

Javascript 从查询字符串JS中删除空参数

Javascript 从查询字符串JS中删除空参数,javascript,Javascript,我有这个查询字符串 "paymentMethod=1&fullname=&persona=&companyName=&countryName=&email=&totalCameras=&camerasOwned=&cameraShares=&snapmailCount=&sessionCount=&createdAtDate=&lastLoginAtDate=&telephone=&

我有这个查询字符串

"paymentMethod=1&fullname=&persona=&companyName=&countryName=&email=&totalCameras=&camerasOwned=&cameraShares=&snapmailCount=&sessionCount=&createdAtDate=&lastLoginAtDate=&telephone=&sort=created_at%7Cdesc&limit=50&page=1"
我正在尝试删除所有空参数并将其转换为

"paymentMethod=1&sort=created_at%7Cdesc&limit=50&page=1"
我采取了这种方法

  let searchParams = Object.fromEntries(new URLSearchParams(queryString))
  let filteredParams = Object.fromEntries(
    Object.entries(searchParams).filter(([_, v]) => v != "")
  )
  console.log(new URLSearchParams(filteredParams).toString())
  console.log(searchParams)
但我不确定,两次使用
新的URLSearchParams
是否是一种更好、正确的方法


任何指导都是值得感谢的。

它的功能不太强,但您可以创建一个
URLSearchParams
对象,然后在其上迭代并
。删除具有空值的
键:

const queryString=“paymentMethod=1&fullname=&persona=&companyName=&countryName=&email=&totalCameras=&camerasOwned=&cameraShares=&snapmailCount=&sessionCount=&createdAtDate=&lastLoginAtDate=&telephone=&sort=在%7Cdesc&limit=50&page=1处创建”
const params=新的URLSearchParams(queryString);
[…params.entries()].forEach(([key,value])=>{
如果(!value)参数删除(键);
});
常数=字符串(参数);
控制台日志(已清理)使用软件包更安全

将参数定义为对象,然后调用
stringify
方法,它将为您处理未定义的值和空值

params = {
  paymentMethod: 1,
  fullname: 'John',
  created_at: undefined,
  test: '',
};

// cleaned object will be "paymentMethod=1&fullname=John"
const cleaned = queryString.stringify(params);


谢谢,结束投票的原因是什么?我不知道这个问题出了什么问题
for ([k, v] of searchParams.entries()) {
  if (v == '') searchParams.delete(k)
}