我正在构造一个带有查询字符串解析qs.stringify
的URL,其中我只希望URL中存在非空或非空值。
我得到的结果如下:
localhost:3000/user?name=john&age=
但是,我不希望在url中包含age
参数,因为age的值是null
。
下面是我的代码摘录:
const url = `/user?${qs.stringify({ name, age })}`;
有人能帮忙吗?
我正在构造一个带有查询字符串解析qs.stringify
的URL,其中我只希望URL中存在非空或非空值。
我得到的结果如下:
localhost:3000/user?name=john&age=
但是,我不希望在url中包含age
参数,因为age的值是null
。
下面是我的代码摘录:
const url = `/user?${qs.stringify({ name, age })}`;
有人能帮忙吗?
6条答案
按热度按时间pdsfdshx1#
您可以使用
Object.fromEntries
和Object.entries
建立函数,以筛选出非Null和非空白值:lvmkulzt2#
qs
软件包自v5.1.0起添加了skipNulls
选项若要完全跳过渲染具有
null
值的关键帧,请使用skipNulls
标志:不用担心,
qs
包也支持跳过undefined
值。runkit
但是
qs
不支持忽略零以下的值:0
、''
kkbh8khc3#
你可以试试这条路
t9aqgxwy4#
您也可以使用reg exp
const url = ``/user?${qs.stringify({ name, age })}``.replace(/[^=&]+=(&|$)/g,"").replace(/&$/,"")
c0vxltue5#
您应该只允许那些不为null的属性;最简单的方法如下
erhoui1w6#
您可以通过回退为空值未定义来删除
qs.stringify
的filter
选项中的空值: