J'ai besoin de comparer 2 tableaux

const inviteFriends = [
  {
    userId: 'u12p3',
    name: 'Goku',
    invited: true
  },
  {
    userId: 'uefi3',
    name: 'Vegeta',
    invited: true
  }
]

const allFriends = [
  {
    userId: 'u12p3',
    name: 'Goku',
    invited: false
  },
  {
    userId: 'ufisj',
    name: 'Goten',
    invited: false
  },
  {
    userId: 'uefi3',
    name: 'Vegeta',
    invited: false
  },
]

Si invited est true, je dois renvoyer un nouveau tableau.

Quelque chose comme ça:

const newArray = [
  {
    userId: 'u12p3',
    name: 'Goku',
    invited: true
  },
  {
    userId: 'ufisj',
    name: 'Goten',
    invited: false
  },
  {
    userId: 'uefi3',
    name: 'Vegeta',
    invited: true
  },
]

Une idée comment puis-je y parvenir? Aide s'il vous plaît 😢

0
Alfrex92 2 juin 2020 à 05:20

2 réponses

Meilleure réponse
const inviteFriends = [
  {
    userId: 'u12p3',
    name: 'Goku',
    invited: true
  },
  {
    userId: 'uefi3',
    name: 'Vegeta',
    invited: true
  }
]

const allFriends = [
  {
    userId: 'u12p3',
    name: 'Goku',
    invited: false
  },
  {
    userId: 'ufisj',
    name: 'Goten',
    invited: false
  },
  {
    userId: 'uefi3',
    name: 'Vegeta',
    invited: false
  },
];

const newArr = allFriends.map((friend) => {
  const found = inviteFriends.find((invited) => {
    return invited.userId === friend.userId
  });
  return {...friend, ...found};
});

console.log(newArr);
1
jinongun 2 juin 2020 à 02:25

Utilisez le filtrage pour y parvenir:

invitedFriends = allFriends.filter(friend => friend.invited==true);
0
David Kabii 2 juin 2020 à 02:26