Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 如何在键/值对中优雅地传递URI参数_Javascript_Nestjs - Fatal编程技术网

Javascript 如何在键/值对中优雅地传递URI参数

Javascript 如何在键/值对中优雅地传递URI参数,javascript,nestjs,Javascript,Nestjs,我有一个函数 personsPaginated( params: { searchString?: string; pageNumber?: number; perPage?: number; office?: string, notary?: boolean, cpr?: boolean, hrdept?: number, legaldept?: number, committee?: number } = { pageNumber: 1, perPage: 1

我有一个函数

personsPaginated(
    params: { searchString?: string; pageNumber?: number; perPage?: number; office?: string, notary?: boolean, cpr?: boolean, hrdept?: number, legaldept?: number, committee?: number } = {
      pageNumber: 1,
      perPage: 10,
      office: null, 
      notary: null,
      hrdept: null,
      committee: null
    }
  )
调用此函数时,可以包括/排除任何值,包括作为键/值对的任何值

然而,由于这些对中的一些是不能为null的变量,我需要找到一种方法来排除该对,如果该值是这样的,则不应包括该对。示例:hrdept可以是0,这意味着包含所有

我想找到一种方法,在不编写大量if/else语句的情况下调用params

if ( hrdept > 0 ) { 
  personsPaginated( searchString, pageNumber, perPage, office, notary, hrdept, committee)
}
else {
  personsPaginated( searchString, pageNumber, perPage, office, notary, committee)
}

if/else语句冗长乏味。必须有更好的方法。

一种不嵌套if/else语句的方法

if ( hrdept > 0 ) { 
  personsPaginated( searchString, pageNumber, perPage, office, notary, hrdept, committee)
}
else {
  personsPaginated( searchString, pageNumber, perPage, office, notary, committee)
}
  • 谢谢你的主意

创建const对象,然后删除不需要的键/值对。

为什么函数会收到这么多参数?它不能仅仅是一个对象吗?这是一个数据库,应用程序在其中有多种过滤数据的方法。此函数用于返回要显示的数据,并以多种方式进行筛选。有一个搜索框(返回一个搜索字符串),office下拉列表选择哪个办公室,然后是过滤数据的其他函数。如果我知道如何通过一个物体,那可能会有用。我可以让它处理一串if/else语句,但我正在寻找更优雅的东西。如果所有参数都是可选的,我想知道编译器如何识别参数中您想要或不想要的内容。例如:personsPaginated(1,2,3)应该是什么?它们是键/值对。如果我通过了stringSearch:Larry,则Paginated将知道如何过滤包含Larry的名称。如果我通过了公证人:true,则人员分页知道筛选公证人为true的所有记录。如果没有stringSearch,它仍然会这样做,因为它通过key/value pair.ummm进行处理。如果没有别的办法,我想不出一个办法来做你想做的事。在分配参数之前,您必须检查一些条件,因此您可能希望使用switch case来代替?太好了!!删除是关键:D