Javascript 将项添加到数组开头,同时删除最后一个项的更短/更简洁的方法?

Javascript 将项添加到数组开头,同时删除最后一个项的更短/更简洁的方法?,javascript,Javascript,我将分页添加到我正在处理的项目中,该项目使用React和Redux 当我创建一个新项目时,我希望它附加到当前列表中,同时删除列表中的最后一个项目;因为每页都有显示项目的限制 我想出的解决办法是这样的 基本上,我想向数组中添加1,但也要删除3;因此,新数组将是[1,2] 编辑:抱歉,但如果这是一个redux reducer,我必须在一行中完成所有操作,我将如何实现这一点 const add = 1; const state = [2,3]; const update = [add, ...sta

我将分页添加到我正在处理的项目中,该项目使用React和Redux

当我创建一个新项目时,我希望它附加到当前列表中,同时删除列表中的最后一个项目;因为每页都有显示项目的限制

我想出的解决办法是这样的

基本上,我想向数组中添加
1
,但也要删除
3
;因此,新数组将是
[1,2]

编辑:抱歉,但如果这是一个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中使用第一个参数。它就在那里,所以我可以访问索引。

要删除数组的最后一个元素,请使用数组pop方法,并使用数组unshift方法将元素添加到第一个位置

const add=1;
常量状态=[2,3];
state.pop();
状态。取消移位(添加);

console.log(状态)要删除数组的最后一个元素,请使用数组pop方法;要将元素添加到第一个位置,请使用数组取消移位方法

const add=1;
常量状态=[2,3];
state.pop();
状态。取消移位(添加);
console.log(状态)您可以使用
slice()
。负结束索引从数组末尾向后工作

const add=1;
常量状态=[2,3]
常量res=[add,…state.slice(0,-1)]
console.log(res)
您可以使用
slice()
。负结束索引从数组末尾向后工作

const add=1;
常量状态=[2,3]
常量res=[add,…state.slice(0,-1)]

console.log(res)
state.unshift(1);state.pop();console.log(状态)只是为了澄清这一点:您不必在redux reducer中的一行中完成所有操作。这种限制并不存在。另外,请务必查看官方的redux工具包,它将允许您编写可变的代码,并使类似的内容更容易:非常感谢。这段时间我一直觉得它必须在一条线上。将读取更多文档。
state.unshift(1);state.pop();console.log(状态)只是为了澄清这一点:您不必在redux reducer中的一行中完成所有操作。这种限制并不存在。另外,请务必查看官方的redux工具包,它将允许您编写可变的代码,并使类似的内容更容易:非常感谢。这段时间我一直觉得它必须在一条线上。我们将阅读更多文档。