I'm struggling with filtering a nested array of objects. My expected result, I want to get a user who has an email address that starts with the mil (example) letter or I want to get user who has female gender. I have seen tricks from another question but I still don't get my expected result.
Let's say my data is below:
let users = [{
"results": [{
"gender": "female",
"name": {
"title": "Miss",
"first": "Britney",
"last": "Sims"
},
"email": "[email protected]",
"login": {
"uuid": "2d5afd5e-a598-469f-9933-4edba18bcefb",
"username": "blueelephant921",
"password": "ccccccc",
"salt": "uJHyJ9ZL",
"md5": "5724c4fbd97e5155d19f71a44f12cc48",
"sha1": "85dff52890cee9977409fc6ae332a7e2326d6aa4",
"sha256": "ab62d511f943bfca48935cb4620b3b2007f8d1b9c1e04a04ea76ea95cd099d5f"
},
"registered": {
"date": "2014-05-20T20:54:39.692Z",
"age": 8
}
},
{
"gender": "female",
"name": {
"title": "Ms",
"first": "Imogen",
"last": "Edwards"
},
"email": "[email protected]",
"login": {
"uuid": "5a79ebec-08a6-45de-a2de-b3222f0d1ffe",
"username": "silversnake277",
"password": "clifford",
"salt": "7d1g093S",
"md5": "585e4a480fb97e0f7430ace6acaabd4f",
"sha1": "c2214f29692ca2aea5898f7c9e40846e125c5657",
"sha256": "6ec460f8cbc394e7758f22bbe185c5ae54048e1924fad1b94ac2511511ec2b5a"
},
"registered": {
"date": "2016-04-10T14:57:49.011Z",
"age": 6
}
}
],
"info": {
"seed": "foobar",
"results": 10,
"page": 1,
"version": "1.3"
}
},
{
"results": [{
"gender": "female",
"name": {
"title": "Miss",
"first": "Avery",
"last": "Harris"
},
"email": "[email protected]",
"login": {
"uuid": "36213f8d-ab68-4906-b215-5660c84ffbf2",
"username": "greengoose482",
"password": "amazon",
"salt": "SAFLaz7k",
"md5": "99b57bab46e91f99e28f9920a70789db",
"sha1": "ed0faee69842302e732f92f6d06f44d97f3c617e",
"sha256": "ebcccbab0ce22a2ee5f5caa0f88abbbc58e1fc89829bf30ebfe81b839c0aca1a"
},
"registered": {
"date": "2002-05-16T09:53:41.802Z",
"age": 20
}
},
{
"gender": "male",
"name": {
"title": "Mr",
"first": "Milton",
"last": "Miles"
},
"email": "[email protected]",
"login": {
"uuid": "b16bf03e-daa8-46b9-8c8c-6fe605abaa63",
"username": "brownpanda533",
"password": "gggg",
"salt": "4zdtNQQO",
"md5": "5415ef33797665bc91103cc28e10c127",
"sha1": "00816e03d999d456524abf9a3f1229d930c2ca37",
"sha256": "da3db1d7fe779b4c2c5ceebefa60c43a2d5eacb0a31ed8305b52859db82a100d"
},
"registered": {
"date": "2012-02-11T18:46:12.048Z",
"age": 10
}
}
],
"info": {
"seed": "foobar",
"results": 10,
"page": 2,
"version": "1.3"
}
}
]
const findUser = users.filter((u) =>
u.results.some((i) => i.email.startsWith("mil"))
);
console.log(findUser);
From my current code, I just have the data as is.
gender: femaleif there are no matches foremail: mil...?