如何在两个数组中保留重复的元素

时间:2018-01-07 18:04:41

标签: javascript

我有两个数组:

[
  {
    login: "LoginAAA",
    url: "someurl-aaa",
    number: 23
  },
  {
    login: "LoginBBB",
    url: "someurl-bbb",
    number: 56
  },
  {
    login: "LoginCCC",
    url: "someurl-ccc",
    number: 12
  },
    {
    login: "LoginDDD",
    url: "someurl-ddd",
    number: 45
  }
 ]

 [
  {
    login: "LoginAAA",
    url: "someurl-aaa",
    number: 23
  },
  {
    login: "LoginDDD",
    url: "someurl-ddd",
    number: 45
  },
    {
    login: "LoginZZZ",
    url: "someurl-zzz",
    number: 53
  }
 ]     

现在,我需要比较数组并过滤那些数组,只留下一个键重复的元素,例如“login”。

[
  {
    login: "LoginAAA",
    url: "someurl-aaa",
    number: 23
  },
  {
    login: "LoginDDD",
    url: "someurl-ddd",
    number: 45
  }
]

我想我必须使用filter()方法,但我的尝试不会带来结果。我应该为每个数组运行filter()吗?

1 个答案:

答案 0 :(得分:-1)

const array1 = []; // Your first array
const array2 = []; // Your second array
const logins2 = array2.map(login => {
    return login['login'];
});
duplicates = array1.filter(login => {
    return logins2.indexOf(login['login']) !== -1;
});