javascript - 如何 "undo"带有拼接的已删除元素?

标签 javascript arrays splice

当我有一个数组时,我使用 splice 来删除,比方说,数组的最后一个元素。是否有机会创建一个按钮,当我单击它时,它会撤消已删除的操作?比如在写代码的时候用Ctrl+Z 就可以及时跳回?这意味着将删除的元素及其所有特征还给我?

最佳答案

Array.splice 允许您删除或插入元素,删除时也会返回被删除的元素。如果您捕获已删除的元素,您可以轻松地将它们添加回来:

let arr = [1,2,3,4,5,6];
// remove 1 element from index 1 ("2")
let removed = arr.splice(1, 1);
// add "2" back to position 1
arr.splice(1, 0, ...removed);

console.log(arr);

如果您无法访问 ES6 的扩展运算符,您可以使用 .shift() 来获取 removed 中的第一个元素:

let arr = [1,2,3,4,5,6];
// remove 1 element from index 1 ("2")
let removed = arr.splice(1, 1);
// add "2" back to position 1
arr.splice(1, 0, removed.shift());

console.log(arr);

关于javascript - 如何 "undo"带有拼接的已删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42913573/

相关文章:

arrays - 如何在 fortran 中调用数组值函数?

python-3.x - 为什么Python在这段看似简单的代码中不拼接换行符呢?

c++ - C++ 中的拼接与 Javascript 中的拼接类似吗?

java - 从 int 创建时钟格式

javascript - Breeze js缓存如何知道子实体是否被更改?

javascript - Input type=file 在IE8-9中显示不正确

python - 如何从在C层进行内存分配的python脚本中将float *数组传递给C方法

python - 尽可能快地旋转大型阵列

javascript - 在附加到正文之前获取 div 的大小

javascript - UIWebView 中 PUT 或 POST 类型的 ajax 不传递 HTTP 主体