[英]Filtering array with value from Observable/subscribe?
我使用ngx-translate通过我的应用程序翻译关键字,包括标签列表。 用户应该能够以任何语言搜索它们。
以前我在做
this.tag_array_filtered = this.tag_array.filter(tag =>
tag.toUpperCase().includes(this.tag_searched.toUpperCase()));
)
但它仅搜索关键字,而不通过翻译。
这就是我从钥匙那里得到翻译的方法
this.translate.get(tag).subscribe(value => {
console.log(value);
})
变量tag_array
是一个键数组,可以进行翻译。 tag_searched
包含用户输入。 tag_array_filtered
是要显示的键的数组(未翻译)
我想做什么:(显然无法正常工作)
this.tag_array_filtered = this.tag_array.filter(tag =>
this.translate.get(tag.toUpperCase()).subscribe((value: string) => {
value.includes(this.tag_searched.toUpperCase())
})
)
如何在通过订阅转换值时过滤数组? 我想比较从数组转换到用户输入的每个值。
我猜我可以用手工制作的循环来做,但是如果已经有解决方案,那可能会更快。
translate.get()
方法还接受字符串数组。 您可以尝试这样。 最终输出将是一个对象,您可以根据需要将其转换为数组。
let tag_array_filtered = this.tag_array.filter(tag => tag.toUpperCase() .includes(this.tag_searched.toUpperCase()) .map(e => e.toUpperCase()) this.translate.get(matching_tags).subscribe((values: {}) => { this.tag_array_filtered_object = values })
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.