一个数组开始为[],然后继续增长,数字被添加到它。
我正在尝试创建一个选择器来提取数组的最后两个元素。
我有以下内容:
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)
);
您可以使用否定的开头索引从末端切片。文档。
可以使用负索引,表明从末尾的偏移 顺序。切片(-2(在序列中提取最后两个元素。
['zero', 'one', 'two', 'three'].slice(-2)
//["two", "three"]