dire que nous avons un tableau d'objets comme celui-ci:
var array3 = [
{first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'},
{first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'},
{first_name: 'John', last_name: 'Smith', email: 'johnsmith@gmail.com', active: false}
]
3 Réponses :
Utilisez un p> foreach code> boucle et un filtre code> var array1 =
[
{first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'},
{first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'}
]
var array2 =
[
{first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'},
{first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'},
{first_name: 'John', last_name: 'Smith', email: 'johnsmith@gmail.com'}
]
array2.forEach((e)=>{
array1.filter(k=>e.email==k.email).length==0?e.active="false":false;
})
console.log(array2)
Vous pouvez utiliser Carte Code> et Mapper code>
Carte code>, donc l'accès à l'e-mail de Array1 peut être effectué dans O (1) LI>
- boucle sur Array2, ajoutez
actif code> clé conditionnellement basé sur la présence d'e-mail dans newMap code> li>
ul> p>
let array1 = [{first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'},{first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'}]
let array2 =[{first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'}, {first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'}, {first_name: 'John', last_name: 'Smith', email: 'johnsmith@gmail.com'}]
let newMap = new Map(array1.map(({email})=>[email,true]))
let final = array2.map(obj=>({
...obj,
...(!newMap.has(obj.email) && {active: false})
})
)
console.log(final) Vous pouvez maintenir un ensemble de tous les courriels à partir du tableau1 et qu'utiliser p> array.map () code> sur Array2 pour obtenir le résultat souhaité: let array1 = [ {first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'}, {first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'} ]
let array2 =[ {first_name: 'Bob', last_name: 'Jones', email: 'bobjones@gmail.com'}, {first_name: 'Susan', last_name: 'Anderson', email: 'susananderson@gmail.com'}, {first_name: 'John', last_name: 'Smith', email: 'johnsmith@gmail.com'} ];
let set = new Set(array1.map(({email})=> email));
let array3 = array2.map(o =>{
if(!set.has(o.email))
o.active = false;
return o;
});
console.log(array3);