javascript - 如何使用javascript获取已删除项目的值
问题描述
我从数组中删除了一个元素。现在,我需要显示哪些项目被删除以及剩余的项目,但一直不成功。假设,数组看起来像:
let person = ['Cercei','Snow','Arya','Sansa']
我删除了“Snow”和“Cercei”。所以,我需要将两个东西显示到两个不同的新数组中。
delPerson = ['Cercei','Snow']
remArray = ['Arya','Sansa']
用 JavaScript 怎么能做到这一点?在我的应用程序中,我有每个名称的删除图标,因此我可以删除任何名称。我想将删除的名称和剩余的名称放入两个不同的数组中。请帮助我如何使用 javascript 或 lodash
让我告诉你我的应用程序代码:
let person = personData.map(n => n.name)
let remPerson = person.filter(p => person.indexOf(p) !== -1)
现在, person 和 remPerson 数组显示相同的值。在比较长度时,它会产生问题。
解决方案
一种方法是使用Array.reduce。
const persons = ['Cercei', 'Snow', 'Arya', 'Sansa'];
const {
deleted,
kept
} = persons.reduce((acc, person) => {
// Note: The deletion condition may vary
if (person === 'Cercei' || person === 'Snow') {
acc.deleted.push(person);
} else {
acc.kept.push(person);
}
return acc;
}, {
deleted: [],
kept: []
});
console.log(deleted);
console.log(kept);
推荐阅读
- javascript - Timed Promise resolve 前一次用 time 解决后立即返回
- html - 适用于 Mac 的 Pug 到 html 转换器。求命令行代码
- vim - 允许在没有关联文件的情况下从缓冲区中快速退出
- c# - 为什么迭代字典的值以与插入相同的顺序返回,而它应该是不确定的?
- c# - 在 WPF 中单击 menuitem 时如何动态加载表单?
- arrays - 如何使 bash 'pop' 和 'shift' 函数实际返回弹出或移动的项目?
- javascript - 使用 require 或 re-evaluate 引用变量
- typescript - 如何键入一个泛型函数,它基于第一个参数类型的扩展泛型类型?
- javascript - 如何让页面等到导航未在 puppeteer 中完成
- azure-devops - 我可以通过否定标记来筛选 Azure DevOps 中的积压工作吗?