我在一个使用React和Redux的项目中添加了分页。
当我创建一个新项目时,我希望它附加到当前列表中,同时删除列表中的最后一个项目;因为每个页面都有显示项目数量的限制。
我想出的解决方案是这样的。
基本上,我想将1
添加到数组中,但也要删除3
;因此新的阵列将是CCD_ 3。
编辑:很抱歉,但如果这是一个redux reducer,我必须在一行中完成所有事情,我该如何完成?
const add = 1;
const state = [2,3];
const update = [add, ...state.filter((num, idx) =>{
return idx !== state.length - 1
})]
reducer sample:
return {
...state,
items: [add, ...state.filter((num, idx) =>{
return idx !== state.length - 1
})]
}
我可能想得太多了,我觉得有一种更干净的写作方式。。
我也不喜欢的是,我甚至没有在filter中使用第一个参数。它就在那里,所以我可以访问索引。。
您可以使用slice()
。负结束索引从数组的末尾向后工作
const add = 1;
const state = [2,3]
const res = [add, ...state.slice(0,-1)]
console.log(res)
要删除数组的最后一个元素,请使用array pop方法,并将元素添加到第一个位置,请使用数组unshift方法。
const add = 1;
const state = [2, 3];
state.pop();
state.unshift(add);
console.log(state);