javascript - 拼接后如何将删除的项目存储到新数组中?
问题描述
所以,基本上我正在尝试使用拼接通过索引从对象数组中删除项目,它工作正常,但我也想将删除的集合存储到新数组中,遗憾的是我只得到一个元素之后点击,它没有给我一个收藏;
const toArchive = (arr, index) => {
arr.filter((elem, i) => {
if (i === index) {
return elem;
}
})
let shallowCopy = [];
shallowCopy.push(...arr.splice(index, 1));
listToView(arr);
console.log(shallowCopy);
}
这就是我得到的:
[{…}]
[{…}]
[{…}]
[{…}]
期望的结果:
(4) [{…}, {…}, {…}, {…}]
主要代码的一部分:http: //jsfiddle.net/k8qa3cyp/1/
解决方案
您需要将shallowCopy
变量声明移到函数之外。
并且console.log
在函数被调用之后。
推荐阅读
- c - 看不到指针的实际值
- java - 防止 spring-cloud-aws-messaging 尝试停止队列
- python-3.x - 如何修复错误:Windows 上的“AttributeError: module 'tensorflow' has no attribute 'contrib'”
- node.js - 通知中心问题
- reactjs - JS TypeError:无法读取未定义的属性“...”,尽管返回了数据?
- javascript - 甚至在打字稿的异步函数中分配的变量返回未定义
- c# - 尝试使用 Oracle.ManagedDataAccess 在 c# 中加载整个表
- linux - 如何在 Tcl/Tk 中自动在标签中换行?
- c++ - 如何替换值对应的二维向量?
- continuous-integration - 如何根据目标机器是否已有文件跳过 GitLab 上的 CI/CD 步骤?