空数组中的打字稿搜索包括 metot
Typescript search in empty array includes metot
我正在按数组中的 ID 进行搜索。但是如果数组是空的,我希望所有的数据都来。我该怎么做?
selectedUrunGrubus: number[] = [];
urun: Urun[];
getUruns() {
this.generic?.Get_All("Uruns/Generic_Method").pipe(map(hizmets => hizmets.filter(hizmets => (this.selectedUrunGrubus.includes(hizmets.urunGrubuID) && this.selectedUrunGrubus.length>0)))).subscribe({
next: (data) => { this.urun = data; console.log(this.urun) },
error: (err) => { console.log(err) },
complete: () => {
}
});
}
this.urun = [id=1] [id=2] [id=3] [id=4];
if(selectedUrunGrubus == [1,2])
{
this.urun = [id=1] [id=2]
}
if(selectedUrunGrubus == empty)
{
this.urun = [id=1] [id=2] [id=3] [id=4]
}
您的数组为空的原因是因为过滤器中的 this.selectedUrunGrubus.length>0
条件。 selectedUrunGrubus
的长度从 0 开始,所以表达式总是 false
.
这是您可以使用的另一种策略。将过滤后的数组分配给一个变量,然后 return 为任一情况的三元表达式。
selectedUrunGrubus: number[] = [];
urun: Urun[];
getUruns() {
this.generic?.Get_All("Uruns/Generic_Method")
.pipe(
map(hizmets =>{
const matches = hizmets.filter(hizmet => this.selectedUrunGrubus.includes(hizmet.urunGrubuID));
return !!matches.length ? matches : hizmets;
}),
tap(urun=> this.urun = urun)
).subscribe();
}
注:
- 我使用双刘海
!!
将长度转换为布尔值(因为 0
是假的)
- 使用
tap()
来处理副作用,例如 属性 赋值。
subscribe()
中的其余逻辑是默认行为,因此您可以在最后使用基本的 subscribe()
。
我正在按数组中的 ID 进行搜索。但是如果数组是空的,我希望所有的数据都来。我该怎么做?
selectedUrunGrubus: number[] = [];
urun: Urun[];
getUruns() {
this.generic?.Get_All("Uruns/Generic_Method").pipe(map(hizmets => hizmets.filter(hizmets => (this.selectedUrunGrubus.includes(hizmets.urunGrubuID) && this.selectedUrunGrubus.length>0)))).subscribe({
next: (data) => { this.urun = data; console.log(this.urun) },
error: (err) => { console.log(err) },
complete: () => {
}
});
}
this.urun = [id=1] [id=2] [id=3] [id=4];
if(selectedUrunGrubus == [1,2])
{
this.urun = [id=1] [id=2]
}
if(selectedUrunGrubus == empty)
{
this.urun = [id=1] [id=2] [id=3] [id=4]
}
您的数组为空的原因是因为过滤器中的 this.selectedUrunGrubus.length>0
条件。 selectedUrunGrubus
的长度从 0 开始,所以表达式总是 false
.
这是您可以使用的另一种策略。将过滤后的数组分配给一个变量,然后 return 为任一情况的三元表达式。
selectedUrunGrubus: number[] = [];
urun: Urun[];
getUruns() {
this.generic?.Get_All("Uruns/Generic_Method")
.pipe(
map(hizmets =>{
const matches = hizmets.filter(hizmet => this.selectedUrunGrubus.includes(hizmet.urunGrubuID));
return !!matches.length ? matches : hizmets;
}),
tap(urun=> this.urun = urun)
).subscribe();
}
注:
- 我使用双刘海
!!
将长度转换为布尔值(因为0
是假的) - 使用
tap()
来处理副作用,例如 属性 赋值。 subscribe()
中的其余逻辑是默认行为,因此您可以在最后使用基本的subscribe()
。