首页 > 解决方案 > RXJS:使用单击事件迭代数组

问题描述

我有一个可观察的数组。我需要在鼠标单击事件上对数组中的每个元素进行一些操作。我从这样的事情开始:

merge([
 this.clicks,
 this.array$
 ]).pipe(
   tap((value) => console.log(value))
 ).subscribe();

但是我如何迭代元素,所以在每次点击时它都会打印数组中的下一个元素?

标签: rxjs

解决方案


下面的呢?

arrayObservable = of(["how", "are", "you"]);

fromEvent(window, "click").pipe(
  switchMapTo(arrayObservable$),
  map((array, index) => {
    return array[index % array.length]
  })
)

希望能帮助到你!


推荐阅读