首页 > 解决方案 > 如何使用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 数组显示相同的值。在比较长度时,它会产生问题。

标签: javascript

解决方案


一种方法是使用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);


推荐阅读