在选择器中获取数组的最后2个元素(Redux)

Was*_*and 0 javascript arrays reselect

数组以[]开头,然后随着数字的添加而不断增长.

我正在尝试创建一个选择器来提取数组的最后2个元素.

我有以下内容:

const getHistory = (state) => state.score.history;

export const lastTwo = createSelector(
  [getHistory],
  history => (history.length > 1 ? history.slice(-1, -3) : 0)
);
Run Code Online (Sandbox Code Playgroud)

它显示初始值0但是它不输出任何值.请指教.如果,仅出于测试目的,我做:

export const lastTwo = createSelector(
      [getHistory],
      history => history
    );
Run Code Online (Sandbox Code Playgroud)

它在添加时正确输出数组元素.

编辑:

根据以下答案,答案是:

export const lastTwo = createSelector(
          [getHistory],
          history => history.slice(-2)
        );
Run Code Online (Sandbox Code Playgroud)

Yur*_*nko 10

您可以使用负开始索引从末尾切片.文件.

可以使用负索引,指示距序列末尾的偏移量.slice(-2)提取序列中的最后两个元素.

['zero', 'one', 'two', 'three'].slice(-2)
//["two", "three"]
Run Code Online (Sandbox Code Playgroud)