有什么方法可以获取可观察数组的最后 10 个对象

Is there any way to get the last 10 object of an observable array

我正在使用 ngrx 实体适配器 selectAll。它 returns 一个对象(事件)类型的可观察列表。 我只想得到它的最后 10 个对象。 这是我的select或

const geteventsFeatureState = createFeatureSelector<EventState>(
  "events"
);

export const getEvents = createSelector(
  geteventsFeatureState,
  eventAdapter.getSelectors().selectAll
);

export const getEventLoading = createSelector(
  geteventsFeatureState,
  (state: EventState) => state.loading
);

export const getEventLoaded = createSelector(
  geteventsFeatureState,
  (state: EventState) => state.loaded
);

export const getError = createSelector(
  geteventsFeatureState,
  (state: EventState) => state.error
);

这是我的component.ts

ngOnInit() {
    this.event$ = this.store.pipe(select(fromEvent.getEvents));
}

它已经 returns 我所有的对象,我想 select 最后 10 个项目 任何人都可以帮助我

您可以使用 selectors 和 props 来根据一些外部 conditions.In select 获取数据,或者我们可以像这样将 props 传递给 selector 函数:

selector.ts

  export const getLastEvents = createSelector(
      getCounterValue,
      (events, props) => events.slice(Math.max(events.length - props, 1))
    );

在组件中,您可以将道具传递给 select 方法以获取最后 10 个数据。

ngOnInit() {
    this.event$ = this.store.pipe(select(fromEvent.getLastEvents,10));
}