Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
如何在Angular2 Typescript中返回多个值_Angular_Filter_Pagination_Angular Material - Fatal编程技术网

如何在Angular2 Typescript中返回多个值

如何在Angular2 Typescript中返回多个值,angular,filter,pagination,angular-material,Angular,Filter,Pagination,Angular Material,在md表中实现filter和pagination函数时,我试图在typescript中返回多个值。当我运行代码时,检测到无法访问的错误代码 return Observable.merge(...displayPatientDataChanges).map(() => { const startIndex = this._paginator.pageIndex * this._paginator.pageSize; const data = this._patientDatab

在md表中实现filter和pagination函数时,我试图在typescript中返回多个值。当我运行代码时,检测到无法访问的错误代码

 return Observable.merge(...displayPatientDataChanges).map(() => {
   const startIndex = this._paginator.pageIndex * this._paginator.pageSize;
   const data = this._patientDatabase.data.slice();
   return data.splice(startIndex, this._paginator.pageSize);

 // I get the error here on the second return function
   return this._patientDatabase.data.slice().filter((item: Patient) => {
     let searchStr = (item.firstname + item.lastname).toLowerCase();
     return searchStr.indexOf(this.filter.toLowerCase()) != -1;
   });

 });
}

disconnect() {}

这是因为方法在达到以下条件后结束:

return data.splice(startIndex, this._paginator.pageSize);
这意味着从未达到以下代码,因此检测到错误
无法达到的代码

return this._patientDatabase.data.slice().filter((item: Patient) => {
     let searchStr = (item.firstname + item.lastname).toLowerCase();
     return searchStr.indexOf(this.filter.toLowerCase()) != -1;
});
如果要同时返回这两个值,则需要返回数组或对象:

const something1 = data.splice(startIndex, this._paginator.pageSize);
const something2 = this._patientDatabase.data.slice().filter((item: Patient) => {
     let searchStr = (item.firstname + item.lastname).toLowerCase();
     return searchStr.indexOf(this.filter.toLowerCase()) != -1;
});
return [something1, something2] // or {something1, something2}

如果我想把两者都退呢?我该怎么做?@mots我已经更新了关于如何返回多个值的答案在一次一行调用中分配两个返回值的任何方法?@Stephane
const[val1,val2]=[1,2]
,docs:我注意到我们还可以添加类型,如
const[val1,val2]:[string,number]=[Stephane',10]