我正在研究不同的数组方法和可观察的乐趣/做法。在此示例中,我尝试对Json Object进行实时搜索。我使用可观察的方法来观察keyup的更改并获取值。然后,我将它们放在空的空间中的数组拆分中。然后使用平面图传递该数组以用作搜索词并过滤结果。我想知道是否有办法将.filter.includes的第一个循环之后返回的结果数组用作下一个循环的用户数组,以此类推,而不是原始数组。
我曾用array.reduce尝试过,但使用起来还是不太舒服。
谢谢
let search$ = fromEvent(srch, "keyup").pipe(
map(x => {
let searchArray = x.currentTarget.value.split(" ");
return searchArray;
}),
debounceTime(400),
flatMap(terms => {
let users = jsonObj.users;
let termMap = terms.map(x => {
return users.filter((user, index) => {
return user.name.includes(x);
});
});
return of(termMap);
})
);