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

标签 javascript arrays reselect

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

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

我有以下内容:

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

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

它显示最初的0,但随后它不输出任何值。请指教。如果,只是出于测试目的,我这样做:

export const lastTwo = createSelector(
      [getHistory],
      history => history
    );

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

编辑:

根据下面的答案,答案是:

export const lastTwo = createSelector(
          [getHistory],
          history => history.slice(-2)
        );

最佳答案

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

A negative index can be used, indicating an offset from the end of the sequence. slice(-2) extracts the last two elements in the sequence.

['zero', 'one', 'two', 'three'].slice(-2)
//["two", "three"]

关于javascript - 获取选择器中数组的最后 2 个元素 (Redux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43430006/

相关文章:

javascript - 如何获取两个列表,允许用户从每个列表中进行选择以创建两个新列表并将新列表中的数据组合成 redux 中的单个结果

javascript - 使用包含 promise 的 createselector 来 react redux 容器

javascript - React - 搜索输入未正确过滤

javascript - nodejs执行字符串变量

javascript - 根据另一个数组的值设置数组中键的值

javascript - 将元素数组移动到数组的另一个索引中

javascript - 使用模态和排序重新选择

javascript - 验证更改时的 bootstrap-datepicker 字段

javascript - 使用imacros提取特殊文本类型

c++ - 如何将模板参数包转换为函数的多个指针参数?